簡體   English   中英

3G中的socket.io io.sockets.adapter.rooms [room]無法正常工作

[英]socket.io io.sockets.adapter.rooms[room] in 3G not working

我在socket.io開發中遇到了一個非常奇怪的問題。

一切正常(從服務器發出/從服務器發出),除了服務器通過3G連接執行以下操作之外:

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

該行幾乎每次都返回typeof'undefined',好像在給定的“ thisroom”房間中沒有插座連接時,實際上卻有插座連接到該房間。

如果在相同的情況下通過相同的套接字從WIFI連接執行相同的代碼,則上面的行將返回如下內容:

會議室{插槽:{'/#wEkHFuAhbCEf1Dw2AAAC':true},長度: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連接中均可使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM