Socket.io连接问题

问题描述 投票:1回答:1

我正在使用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()
        }

我在崩溃之前得到这个日志Socket Connected外部登录检查....

请你帮助我好吗?

android socket.io okhttp3
1个回答
0
投票

我得到了我的问题的解决方案。我不知道这个解决方案是否适用于其他相同的解决方案,但这对我有用。

我做的是

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”即可。

如果他们面临同样的问题,希望这对其他人有用。

© www.soinside.com 2019 - 2024. All rights reserved.