socket.io io.sockets.adapter.rooms [房间]在3G无法正常工作

时间:2016-07-06 21:09:44

标签: node.js sockets websocket socket.io 3g

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

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

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

这条线几乎每次都会返回一个未定义的类型,就好像在给定的' thisroom'中没有插座连接的地方一样。实际上有连接房间插座的房间。

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

  

房间{套接字:{' /#wEkHFuAhbCEf1Dw2AAAC':true},长度:1}

这是正确的。

我已经尝试过这一切:

尝试socket.io版本1.3.7

尝试socket.io版本1.4.8

尝试与

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

尝试仅使用以下方法强制进行websockets传输:

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

尝试使用两种传输方式:

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

没有任何效果。

这真的很奇怪,因为有时候,只需重新启动应用程序,3G连接就可以正常工作。但大多数时候,它确实有效。

想法?

1 个答案:

答案 0 :(得分:0)

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