【问题标题】:socket.io in node.js is not working on 3G mobile networknode.js 中的 socket.io 不适用于 3G 移动网络
【发布时间】:2014-04-25 22:50:24
【问题描述】:

node.js 中的 socket.io 不适用于 3G 移动网络。

我已经尝试过这些方法:

 io.set("transports", ["xhr-polling"]);
 io.set('browser client minification', true);
 io.set('browser client etag', true);

【问题讨论】:

  • 除了心跳之外,socket.io 是否记录任何内容,握手呢?

标签: node.js networking mobile socket.io 3g


【解决方案1】:

移动网络会做各种各样的事情来破坏数据。在此过程中经常会看到激进的代理服务器、数据的压缩和转换以及对规范的不良遵守。

我特别注意到 WebSockets 连接经常失败。通过仅启用 AJAX 传输,您正在做正确的事情。如果失败了,那么您就无能为力了。

您可以尝试在 80 以外的端口上运行 Socket.IO 服务器。至少使用我的 Sprint 连接,我可以在端口 3000 上运行纯 websocket,但在端口 80 上会失败。

【讨论】:

    【解决方案2】:

    尝试从您的代码中删除它:

    io.set("transports", ["xhr-polling"]);
    

    因为 socket.io 在最终放弃之前会尝试所有可用的传输。但是,您只启用了一种可能导致错误的传输

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-13
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-24
      相关资源
      最近更新 更多