SocketIO отключился с ошибкой xhr poll error при повторном подключении к объекту сокета fre sh - PullRequest
0 голосов
/ 21 июня 2020

Я пытаюсь реализовать мгновенный чат с помощью socket.IO в android. Когда я впервые подключаюсь, он подключается без каких-либо ошибок, но когда я отключаю сеть и подключаюсь снова, я получил ошибку EngineIOException: ошибка опроса xhr

Вот мой код


        fun connect(token: String) {
            val userId = account.userId
            if (socket != null && socket!!.connected()) {
                Log.d(TAG, "Already connected...")
                return
            }
    
            isConnecting = true
            Log.d(TAG, "connecting...: " )
            val options = IO.Options()
            options.query = "userId=$userId"
            options.reconnection = false
            options.forceNew = true
         //   options.transports = arrayOf<String>(WebSocket.NAME); //or Polling.NAME
          //  options.upgrade =false
            initEvents()
            socket?.connect()
        }
    
    private fun initEvents(){
      socket?.on(Socket.EVENT_CONNECT) {
                Log.d(TAG, "socket.io connected")
                App.get().runOnUiThread {
                    isConnecting = false
                    linkState.state = LinkState.ONLINE
                    /* JobSingleton.getInstance().jobManager.start()
                     socketObserver?.onOpen()*/
                }
            }
    
            socket?.on(Socket.EVENT_ERROR) {
                Log.e(TAG, "SOCKET ERROR : " + (it as Array)[0].toString())
            }
    
            socket?.on(Socket.EVENT_CONNECT_TIMEOUT) {
                isConnecting = false
                Log.e(TAG, "SOCKET CONNECTION TIMEOUT")
                socketObserver?.onClose()
            }
    
            socket?.on(Socket.EVENT_DISCONNECT) {
                Log.d(TAG, "SOCKET DISCONNECTED")
    
                isConnected = false
                socket?.disconnect()
                socket?.off()
                socket = null
                socketObserver?.onClose()
    
                App.get().runOnUiThread {
                    linkState.state = LinkState.OFFLINE
                }
            }
    }

Вот логи

// первое подключение D / SocketManager: подключение ...: D / SocketManager: socket.io connected

// отключение Интернета E / SocketManager: ОШИБКА СОКЕТА: io.socket.engineio.client.EngineIOException: ошибка веб-сокета D / SocketManager: СОКЕТ ОТКЛЮЧЕН

// снова включить inte rnet D / SocketManager: подключение ...: D / SocketManager: socket.io подключен E / SocketManager: SOCKET ERROR: io.socket.engineio.client.EngineIOException: xhr poll error D / SocketManager: SOCKET DISCONNECTED D / SocketManager: connected ...:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...