Node.js 什么是;“xhr轮询”;在socket.io中配置do?

Node.js 什么是;“xhr轮询”;在socket.io中配置do?,node.js,socket.io,long-polling,Node.js,Socket.io,Long Polling,我有一个带有socket.io的node.js服务器: var io = require('socket.io').listen(app); // assuming io is the Socket.IO server object io.configure(function () { io.set("transports", ["xhr-polling"]); io.set("polling duration", 10); }); io.sockets

我有一个带有socket.io的node.js服务器:

var io = require('socket.io').listen(app);

// assuming io is the Socket.IO server object
io.configure(function () { 
      io.set("transports", ["xhr-polling"]); 
      io.set("polling duration", 10); 
    });

io.sockets.on('connection', function(socket){
  console.log('connected: %s', socket.id);
  ...
}

对于xhr轮询和10秒的轮询持续时间,这是否意味着每10秒调用一个新连接?如果是这样,如果用户不断断开连接,我如何跟踪他们?我正在heroku上运行node.js。

socket.io
会自动重新连接客户端。

xhr轮询意味着您的服务器将在收到任何没有应答的帖子后等待10秒钟,然后再应答,而不是发回空响应。因此,如果您的服务器在10秒后没有信息要返回,它将以空响应进行回复。 您可以在此处阅读更多内容:

我个人在nodejitsu(另一个像Heroku一样托管的节点)上的应用程序中使用xhr轮询作为WebSockets的回退选项,它工作得很好。唯一的问题是“连接上”事件需要3-8秒,而不是像我的WebSocket应用程序那样是即时的

没有在每次新轮询时创建新连接,这只是一种每10秒只向服务器发送一次GET或POST的方式,而不必每0.5秒轮询服务器以获得“实时”应用程序。如果服务器在10秒内应答,将发送另一个轮询以准备下一个应答

我希望这对你有帮助。 祝你今天愉快