У меня действительно странная проблема, возникающая здесь в разработке socket.io.socket.io io.sockets.adapter.rooms [номер] в 3G не работает
Все работает нормально (выдает в/из сервера), за исключением, что от соединения 3G сервер выполняет следующие функции:
console.log(io.sockets.adapter.rooms['thisroom'])
Эта линия, почти каждый раз, возвращает TYPEOF из «неопределенными», как если бы там, где не были сокеты, соединенные в данной комнате этого помещения, когда на самом деле есть сокеты, соединенные с комнатой.
Если же код выполняется через соединение Wi-Fi, при тех же обстоятельствах, с теми же гнездах, соединенных, выше строка возвращает что-то вроде:
номер {сокеты: { «/ # wEkHFuAhbCEf1Dw2AAAC»: true}, длина: 1}
который является правильным.
Я пробовал все с этим, чтобы:
Пробовал socket.io версия 1.3.7
Пробовал socket.io версия 1.4.8
Пытались связаться с
var socket = io.connect("http://<ip>:8081");
Пробовал накладывать на порты только транспорт:
var socket = io.connect("http://<ip>:8081", {transports: ['websocket']});
Пытались использовать два транспорта, как:
var socket = io.connect("http://<ip>:8081", {transports: ['websocket', 'polling']});
Ничего не работало.
Это действительно странно, потому что иногда подключение 3G работает так, как ожидалось, только при перезапуске приложения. Но большую часть времени он работает.
Идеи?
Иногда 3G запускает реализацию websocket с дорожек, пытаясь «исправить» запросы «http» ... пытались ли вы использовать TLS, чтобы предотвратить впрыскивание данных третьей стороной (даже хорошо продуманное, оно все еще вызывает проблемы)? – Myst
Вы уверены, что сеть 3G имеет доступ к вашему IP-адресу и порту? Помните, что сетевое соединение 3G будет поступать извне вашего брандмауэра, но сетевое подключение WiFi будет поступать из вашего брандмауэра/маршрутизатора. – jfriend00
Проделали ли вы какую-либо отладку на стороне клиента, чтобы убедиться, что клиент считает, что он подключен? И, как насчет регистрации сервера входящих соединений и создания комнат? Что вы видите как на клиенте, так и на сервере из сети 3G? – jfriend00