android集成websocket

一:首先build.gradle集成

implementation 'com.squareup.okhttp3:okhttp:3.11.0'

二:websocket代码

package com.xx.xx.websocket;
import androidx.annotation.Nullable;

import com.shuye.znsy.activity.MainActivity;

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okio.ByteString;

public class WebSocketExample {

    private WebSocket webSocket;
    private OkHttpClient client;
    private MainActivity mainActivity;

    public WebSocketExample(MainActivity mainActivity) {
        this.mainActivity = mainActivity;
    }

    public void start() {
        client = new OkHttpClient();

        Request request = new Request.Builder()
                .url("ws://192.168.100.11:8001/wss/notice.sc")
                .build();

        webSocket = client.newWebSocket(request, new WebSocketListener() {
            @Override
            public void onOpen(WebSocket webSocket, okhttp3.Response response) {
                // 连接打开时的回调
                webSocket.send("连接已建立,你可以发送消息了。");
            }

            @Override
            public void onMessage(WebSocket webSocket, String text) {
                // 接收到文本消息时的回调
                System.out.println("接收到文本消息: " + text);
                // 调用MainActivity的appUpdate方法
                mainActivity.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mainActivity.appUpdata();
                    }
                });

            }

            @Override
            public void onMessage(WebSocket webSocket, ByteString bytes) {
                // 接收到二进制消息时的回调
                System.out.println("接收到二进制消息: " + bytes.hex());
            }

            @Override
            public void onClosing(WebSocket webSocket, int code, String reason) {
                // 即将关闭连接时的回调
                webSocket.close(1000, "关闭连接");
            }

            @Override
            public void onFailure(WebSocket webSocket, Throwable t, @Nullable Response response) {
                // 连接失败时的回调
                t.printStackTrace();
            }
        });
    }

    public void stop() {
        if (webSocket != null) {
            webSocket.close(1000, "正常关闭");
        }
    }
}

三:

MainActivity主类调用
protected void onCreate(Bundle savedInstanceState) {
       
        //其他代码
        
        WebSocketExample webSocketExample = new WebSocketExample(this);
        webSocketExample.start();


    }

相关推荐

  1. SpringBoot集成WebSocket

    2024-04-22 17:14:05       69 阅读
  2. springboot +vue 集成websocket

    2024-04-22 17:14:05       50 阅读
  3. springboot 集成websocket

    2024-04-22 17:14:05       58 阅读
  4. spring-boot集成websocket

    2024-04-22 17:14:05       39 阅读
  5. Springboot 集成websocket

    2024-04-22 17:14:05       36 阅读
  6. websocket集成文档

    2024-04-22 17:14:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 17:14:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 17:14:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 17:14:05       87 阅读
  4. Python语言-面向对象

    2024-04-22 17:14:05       96 阅读

热门阅读

  1. Docker持久化部署Mysql & Redis

    2024-04-22 17:14:05       36 阅读
  2. Flutter本地化存储介绍与使用

    2024-04-22 17:14:05       35 阅读
  3. Android Jetpack学习系列——WorkManager

    2024-04-22 17:14:05       36 阅读
  4. QML学习之加载gif

    2024-04-22 17:14:05       28 阅读
  5. QT6之qDeleteAll

    2024-04-22 17:14:05       32 阅读
  6. sizeof和strlen,len的区别

    2024-04-22 17:14:05       32 阅读
  7. 华为笔试面试题

    2024-04-22 17:14:05       26 阅读
  8. 头歌平台云计算实验

    2024-04-22 17:14:05       30 阅读