socket.io xhr сообщение об ошибке при медленном соединении (мобильная сеть 3G)
Пока я тестирую свое настоящее приложение для чата в мобильной сети 3G (медленное интернет-соединение),Socket.io
несколько раз отключается, затем снова подключается. Я зарегистрировал причину. это говорит "xhr post error"
которые поднимают "transport error"
затем отключите.
Могу ли я знать, что означает "xhr post error"
и почему эта ошибка появляется при медленном соединении и как решить проблему?
Я использую https://github.com/nkzawa/socket.io-client.java версии 0.4.2
1 ответ
Прежде всего обновите зависимость до 1.0.0
implementation ('io.socket:socket.io-client:1.0.0') {
// excluding org.json which is provided by Android
exclude group: 'org.json', module: 'json'
}
И создать option
с участием transport
val ioOption = IO.Options().apply {
query = /*..*/
reconnection = /*..*/
transports = arrayOf("websocket")
}
А затем создайте сокетное соединение с этим option
try {
socket = IO.socket(baseUrl, ioOption)
} catch (e: URISyntaxException) {
e.printStackTrace()
}
socket.connect()
и слушай EVENT_RECONNECT_ATTEMPT
socket.on(Socket.EVENT_RECONNECT_ATTEMPT) {
ioOption.transports = arrayOf("polling", "websocket")
}
под капотом нет никакой магии, просто реализуйте то, что сказано в документе. Прочитайте больше
ПРИМЕЧАНИЕ: вы можете изменить соответствующий transport
имя, здесь я использовал веб-сокет как документ.
Я думаю, что вы должны установить transports
на вашем клиенте использовать веб-сокеты.
Попробуй это:
IO.Options opts = new IO.Options();
opts.transports = new String[]{"websocket"};
mSocket = IO.socket(SOCKET_SERVER, opts);
Обновление Также попробуйте обновить клиентскую библиотеку до версии 5.1+.