簡體   English   中英

okhttp 客戶端 websocket 失敗

[英]okhttp client websocket failing

我正在使用 okhttp 庫連接我的本地 websocket 服務器(android 應用程序)。

    val request = Request.Builder().url("ws://localhost:3334/").build()
    val wsClient = OkHttpClient().newWebSocket(request, webSocketListener)
    Logger.log("WebSocketHandler", "${serialiser.toJson(wsClient.request())}")

和 webSocketListener

val webSocketListener = object : WebSocketListener() {
      override fun onOpen(webSocket: WebSocket, response: Response) {
         Logger.i("WebSocketListener_onOpen", "Response: ${serialiser.toJson(response)}")
    }

    override fun onMessage(webSocket: WebSocket, text: String) {
        Logger.i("WebSocketListener_onMessage", "text: $text")
    }

    override fun onMessage(webSocket: WebSocket,
                           bytes: ByteString) {
        Logger.i("WebSocketListener_onMessage", "text: ${serialiser.toJson(bytes)}")
    }

    override fun onClosing(webSocket: WebSocket,
                           code: Int, reason: String) {
        Logger.i("WebSocketListener_onClosing", "reason: $reason, code: $code")
    }

    override fun onClosed(webSocket: WebSocket,
                          code: Int, reason: String) {
        Logger.i("WebSocketListener_onClosed", "reason: $reason, code: $code")
    }

    override fun onFailure(webSocket: WebSocket,
                           throwable:Throwable,
                           response: Response?) {
        Logger.i("WebSocketListener_onFailure", "Response: ${serialiser.toJson(throwable)}")
    }
}

但是,當我嘗試運行該應用程序時,連接建立失敗並顯示日志

[socket]:check permission begin!
W/System: ClassLoader referenced unknown path: system/framework/mediatek-cta.jar
I/System.out: [socket] e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaUtils

// throwable object
{
    "cause": {
        "cause": {
            "errno": 111,
            "stackTrace": [],
            "suppressedExceptions": []
        },
        "detailMessage": "failed to connect to localhost/127.0.0.1 (port 3334) from /127.0.0.1 (port 49040) after 10000ms: isConnected failed: ECONNREFUSED (Connection refused)",
        "stackTrace": [],
        "suppressedExceptions": []
    },
    "detailMessage": "Failed to connect to localhost/127.0.0.1:3334",
    "stackTrace": [],
    "suppressedExceptions": []
}

onFailure 在建立連接之前被調用。 websocket 服務器工作正常(使用 nodeJS 客戶端單獨測試)

我無法得到正確的錯誤信息。 有人可以幫我嗎

這是一個構建問題。 文件 system/framework/mediatek-cta.jar 不在 jar 中(或不在類路徑中)

暫無
暫無

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

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