Проблема с соединением Socket.io - PullRequest
1 голос
/ 06 марта 2019

Я использую Socket.io для разговора один на один. Я использовал это раньше, но никогда не сталкивался с такой проблемой. Мое приложение получает сбой после показа ниже ошибки.

Ошибка, которую я получаю

 java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String okhttp3.MediaType.toString()' on a null object reference
        at io.socket.engineio.client.transports.PollingXHR$Request.onLoad(PollingXHR.java:271)
        at io.socket.engineio.client.transports.PollingXHR$Request.access$700(PollingXHR.java:148)
        at io.socket.engineio.client.transports.PollingXHR$Request$1.onResponse(PollingXHR.java:232)
        at okhttp3.RealCall$AsyncCall.execute(RealCall.java:216)
        at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:818)

Что я делал до сих пор?

try {
            val user_email = preferenceManager.getLoggedInUserEmail()
            val ioOption = IO.Options()
            ioOption.query = "username=anyemail"
            ioOption.secure =true
            ioOption.reconnection=true

            SocketConstants.socketIOClient = IO.socket(SocketConstants.SOCKET_URL, ioOption)
            SocketConstants.socketIOClient?.on(Socket.EVENT_CONNECT, object : Emitter.Listener {
                override fun call(vararg args: Any) {
                    SocketConstants.isSocketConnecting = false
                    Log.i(TAG, "Socket Connected Outside login check...."+args.size)
                }

            })
   SocketConstants.socketIOClient!!.connect()
        } catch (e: Exception) {
            e.printStackTrace()
        }

Я получаю этот журнал перед сбоем Сокет подключен вне проверки входа в систему ....

Не могли бы вы мне помочь?

1 Ответ

0 голосов
/ 07 марта 2019

У меня есть решение моей проблемы. Я не знаю, будет ли это решение работать на других, но это сработало для меня.

То, что я сделал, это

val ioOption = IO.Options()
            ioOption.query = "username=$user_email"
            ioOption.secure = true
            ioOption.reconnection = true
            ioOption.transports = arrayOf(WebSocket.NAME)

            SocketConstants.socketIOClient = IO.socket(SocketConstants.SOCKET_URL, ioOption)

ioOption.transports = arrayOf (WebSocket.NAME)

Эта строка решила мою проблему. Просто добавьте trasports как "WebSocket".

Надеюсь, это сработает для других, если они столкнутся с той же проблемой.

...