簡體   English   中英

Socket.io 連接問題

[英]Socket.io connection issue

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

我在崩潰套接字連接外部登錄檢查之前收到此日志....

請你幫助我好嗎?

我得到了我的問題的解決方案。我不知道這個解決方案是否適用於其他面臨同樣的問題,但這對我有用。

我所做的是

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.transsports = arrayOf(WebSocket.NAME)

這條線解決了我的問題。 只需將 trasports 添加為“WebSocket”。

如果他們面臨同樣的問題,希望這對其他人有用。

他們發布了一個新版本 1.0.1,修復了錯誤https://github.com/socketio/engine.io-client-java/commit/6f065b7a62603730979d43cec71af0046ca4ab7c(29天前)。 如果您嘗試使用 v2.0.0,請小心,我無法接收套接字消息,因此我使用了 1.0.1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM