Android,Okhttp - 如何将子协议添加到 websocket 连接

Posted

技术标签:

【中文标题】Android,Okhttp - 如何将子协议添加到 websocket 连接【英文标题】:Android , Okhttp - how to add subprotocol to websocket connection 【发布时间】:2021-06-27 06:28:57 【问题描述】:

在我的应用程序中,我使用 OkHttp 建立 Websocket 连接。这是开始连接的方法:

private fun start(token: String, id: String, url: String) 
        val request: Request = Request
            .Builder()
            .url(url)
            .header("Authorization", token)
            .header("iD", id)
            .build()
        val listener = ValidationWebSocketListener
        client.newWebSocket(request, listener)
        client.dispatcher.executorService.shutdown()
    

但是我必须添加子协议 - “websocket”。我怎样才能做到这一点?有可能吗?

【问题讨论】:

【参考方案1】:

我还没有确认,但应该可以

request = Request.Builder()
                    .url(...)
                    .addHeader("Sec-WebSocket-Protocol", "graphql-ws")
...
                    .build();

【讨论】:

以上是关于Android,Okhttp - 如何将子协议添加到 websocket 连接的主要内容,如果未能解决你的问题,请参考以下文章

webservice是基于soap协议的,在android端可以用okhttp建立连接吗

OKHttp源码解析之网络请求

Android Studio:如何防止工具栏中的向上按钮将子视图向右推?

OkHttp

android okhttp怎么添加请求头

Android OkHttp + Retrofit 取消请求的方法