我是靠谱客的博主 清秀彩虹,最近开发中收集的这篇文章主要介绍OkHttp实现WebSocket,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

导包

implementation 'com.squareup.okhttp3:mockwebserver:3.8.1'

建立 WebSocket 连接

OkHttpClient mOkHttpClient = new OkHttpClient.Builder()
                .pingInterval(40, TimeUnit.SECONDS) // 设置 PING 帧发送间隔---包活
                .build();

        Request request = new Request.Builder()
                .url(url)
                .build();

 

使用 WebSocketListener

WebSocketListener 是一个抽象类,其中定义了比较多的方法,借助这些方法回调,就可以完成对 WebSocket 的所有操作。

mOkHttpClient.newWebSocket(request, new WebSocketListener() {
            @Override
            public void onOpen(WebSocket webSocket, Response response) {
                super.onOpen(webSocket, response);
                // WebSocket 连接建立
            }

            @Override
            public void onMessage(WebSocket webSocket, String text) {
                super.onMessage(webSocket, text);
                // 收到服务端发送来的 String 类型消息

                /**
                 * 在这里对收到的信息进行处理
                 */
            }

            @Override
            public void onClosing(WebSocket webSocket, int code, String reason) {
                super.onClosing(webSocket, code, reason);
                //客户端主动关闭时回调
            }

            @Override
            public void onClosed(WebSocket webSocket, int code, String reason) {
                super.onClosed(webSocket, code, reason);
                // WebSocket 连接关闭
            }

            @Override
            public void onFailure(WebSocket webSocket, Throwable t, Response response) {
                super.onFailure(webSocket, t, response);
                // 出错了
            }
        });
        mOkHttpClient.dispatcher().executorService().shutdown();

发送消息

JSONObject jsonObject = new JSONObject();
            jsonObject.put("xxxxxx", xxxxx);
            mWebSocket.send(jsonObject.toString());

最后

以上就是清秀彩虹为你收集整理的OkHttp实现WebSocket的全部内容,希望文章能够帮你解决OkHttp实现WebSocket所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部