node.js中的socket.io无法在3G移动网络上运行

时间:2014-03-19 15:10:56

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

node.js中的socket.io无法在3G移动网络上运行。

我已经尝试过这些东西了:

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

2 个答案:

答案 0 :(得分:3)

移动网络会做各种事情来破坏数据。在这种情况下,看到积极的代理服务器,压缩和数据转换以及对规范的不良遵守情况是很常见的。

我特别注意到WebSockets连接经常失败。只通过启用AJAX传输,您正在做正确的事情。如果失败,您无法解决问题。

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

答案 1 :(得分:1)

尝试从代码中删除它:

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

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