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+.

Другие вопросы по тегам