【问题标题】:What does "xhr-polling" config do in socket.io?socket.io 中的“xhr-polling”配置有什么作用?
【发布时间】:2012-03-03 21:25:55
【问题描述】:

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

【问题讨论】:

    标签: node.js socket.io long-polling


    【解决方案1】:

    xhr-polling 意味着您的服务器将在收到任何 GET POST 时等待 10 秒,它在回答之前没有答案,而不是发回空响应。因此,如果您的服务器在 10 秒后没有信息可返回,它将以空响应返回。 你可以在这里阅读更多:Long polling

    我个人在 nodejitsu(另一个节点托管,如 Heroku)上的应用程序中使用 xhr-polling 作为 WebSockets 的后备选项,它工作正常。唯一的问题是“连接时”事件大约需要 3-8 秒,而不是像我的 WebSocket 应用程序那样即时。

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

    我希望这会对你有所帮助。 祝你有美好的一天。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2012-11-16
        • 2015-05-04
        • 2013-08-01
        • 2013-04-06
        • 2013-04-03
        • 2019-05-09
        • 2013-10-09
        • 2012-02-10
        • 2016-10-17
        相关资源
        最近更新 更多