socket.io io.sockets.adapter.rooms[room] 在 3G 中不起作用



我在 socket.io 开发中遇到了一个非常奇怪的问题。

一切都工作正常(向/从服务器发出),除了从3G连接服务器执行以下操作:

console.log( io.sockets.adapter.rooms['thisroom'] )

几乎每次,这一行都会返回一种"未定义"的类型,就好像在给定的"thisroom"房间中没有连接插座,而实际上有插座连接到房间。

如果从 WIFI 连接执行相同的代码,在相同的情况下,连接相同的套接字,则上面的行返回类似以下内容:

房间 { 插座: { '/#wEkHFuAhbCEf1Dw2AAAC': 真 }, 长度: 1 }

这是正确的。

我已经尝试了所有方法:

已尝试 socket.io 版本 1.3.7

socket.io 1.4.8版尝试

尝试连接

var socket = io.connect("http://<ip>:8081");

尝试仅使用以下方式强制到 websocket 传输:

var socket = io.connect("http://<ip>:8081", {transports: ['websocket']});

尝试将两个传输方式用作:

var socket = io.connect("http://<ip>:8081", {transports: ['websocket', 'polling']});

什么都没用。

这真的很奇怪,因为有时,重新启动应用程序时,3G连接会按预期工作。但大多数时候,它确实有效。

想法?

我只是通过使用带有 SSL 的安全连接设法使其工作。在SSL下,io.sockets.adapter.rooms['thisroom']每次在任何3G连接中都可以工作。

相关内容

  • 没有找到相关文章

最新更新