android集成websocket

server/2024/9/24 16:24:07/

一:首先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() {@Overridepublic void onOpen(WebSocket webSocket, okhttp3.Response response) {// 连接打开时的回调webSocket.send("连接已建立,你可以发送消息了。");}@Overridepublic void onMessage(WebSocket webSocket, String text) {// 接收到文本消息时的回调System.out.println("接收到文本消息: " + text);// 调用MainActivity的appUpdate方法mainActivity.runOnUiThread(new Runnable() {@Overridepublic void run() {mainActivity.appUpdata();}});}@Overridepublic void onMessage(WebSocket webSocket, ByteString bytes) {// 接收到二进制消息时的回调System.out.println("接收到二进制消息: " + bytes.hex());}@Overridepublic void onClosing(WebSocket webSocket, int code, String reason) {// 即将关闭连接时的回调webSocket.close(1000, "关闭连接");}@Overridepublic 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();}


http://www.ppmy.cn/server/8221.html

相关文章

【电机参数】直流无刷电机机械转速、ud、uq、us、输出功率、相反电动势幅值、载波周期、转矩常数

【电机参数】直流无刷电机机械转速、ud、uq、us、输出功率、相反电动势幅值、载波周期、转矩常数 前言 【电机控制】直流有刷电机、无刷电机汇总——持续更新 使用工具: 1.示波器:PICO2205A 2.电桥LCR:VICIOR4090A 3.电流钳:汉泰…

锂电池寿命预测 | Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于BiLSTM双向长短期记忆神经网络的锂电池寿命预测。 参考资料 [1] h…

接口测试相关

接口测试,接口 接口是数据交互的入口和出口 接口是一套规范和标准 统一设计标准 前后端相对独立 扩展型灵活 接口文档。 接口测试 接口测试环境,运行程序,自己搭建环境 接口测试插件 谷歌postman 火狐 restclient java测试工具为j…

设计模式在芯片验证中的应用——策略

1. 策略模式 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。 在RTL设计中可能包含了复杂的多个访问仲裁逻辑,使用了多种算法来确定访问内存优先级顺序&am…

【软考---系统架构设计师】软件架构

目录 1 一、软件架构的概念 二、软件架构风格 (1)数据流风格​​​​​​​ (2)调用/返回风格 (3)独立构件风格 (4)虚拟机风格 (5)仓库风格 三、架构…

MongoDB的安装和使用。完成MongoDB的基本的shell命令。

一、MongoDB介绍 MongoDB 是一个是一个基于分布式文件存储的数据库,介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储…

.NET/C#汇总 —— WPF

1.WPF由哪两部分组成? wpf 由两个主要部分 组成:引擎和编程框架。 1 引擎。wpf引擎是基于窗体的应⽤程序 图形 视频 ⾳频和⽂档提供了⼀个单⼀的运⾏时库。重要的是 WPF基于⽮量的呈现引擎使应⽤程序可以灵活地利⽤⾼DPI监视器,⽀持图形的硬件加速。2 框架。WPF框架为媒体 …

每日OJ题_其它背包问题①_力扣474. 一和零(二维费用01背包)

目录 力扣474. 一和零 解析代码 代码优化 力扣474. 一和零 474. 一和零 难度 中等 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素&…