美文网首页
使用OkHttp实现推送功能

使用OkHttp实现推送功能

作者: 好学人 | 来源:发表于2020-11-13 17:33 被阅读0次

    思路分析

    1. 使用OkHttpClient#newWebSocket建立长连接;
    2. 监听连接成功事件(WebSocketListener#onOpen);
    3. 连接成功后使用WebSocket#send向服务端发送数据;
    4. 需要结束时使用WebSocket#close关闭长连接。

    实现代码

    OkHttpClient client = new OkHttpClient.Builder().build();
    Request request = new Request.Builder()
            .url("ws://***")
            .build();
    client.newWebSocket(request, new WebSocketListener() {
        @Override
        public void onOpen(WebSocket webSocket, Response response) {
            // 连接成功后向服务端发送数据(比如注册渠道)
            String json = "{***}"
            webSocket.send(json);
        }
    
        @Override
        public void onMessage(WebSocket webSocket, String text) {
            // 接收到推送的文本数据
        }
    
        @Override
        public void onMessage(WebSocket webSocket, ByteString bytes) {
            // 接收到推送的二进制数据
        }
    
        @Override
        public void onClosing(WebSocket webSocket, int code, String reason) {
            // 推送正在关闭
        }
    
        @Override
        public void onClosed(WebSocket webSocket, int code, String reason) {
            // 推送已关闭
        }
    
        @Override
        public void onFailure(WebSocket webSocket, Throwable t, Response response) {
            // 推送连接失败
        }
    });
    

    相关文章

      网友评论

          本文标题:使用OkHttp实现推送功能

          本文链接:https://www.haomeiwen.com/subject/ethbbktx.html