“xhr-polling”configuration在socket.io中做什么?

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

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-polling和10秒的轮询时间,这是否意味着每10秒会调用一次新的连接? 如果是这样,如果用户断开连接,如何跟踪用户? 我在heroku上运行node.js。

xhr-polling意味着你的服务器将在接收到的POST的任何GET上等待10秒钟,在回答之前它没有回答,而不是发回一个空的响应。 所以,如果你的服务器在10秒后没有任何信息要回复,它会回应一个空的回应。 您可以在这里阅读更多信息: 长时间轮询

我个人使用xhr-polling作为nodejitsu(另一个像Heroku托pipe的节点)的应用程序中的WebSockets的回退选项,它工作正常。 唯一的事情是“连接”事件,需要3-8秒,而不是像我的WebSocket应用程序一样。

每个新的轮询都没有创build新的连接,只是每隔10秒只有一个GET或POST发送到服务器,而不是每隔0.5秒轮询一次服务器,时间“应用程序。 如果服务器在不到10秒的时间内回答,将会有另一轮投票来准备下一个回答。

我希望这能帮到您。 祝你有美好的一天。

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