前言
大多数Android网络请求都是使用的Retrofit/OkHttp,它本身也支持WS的连接。
为了各个页面都能进行WS通讯,这里使用全局 WebSocket 管理器 + 消息分发机制来实现。
客户端
连接工具类
1 | import android.util.Log |
连接
实现ZWsListener接口
1 | fun actionInit() { |
服务端
为了方便本地测试,这里使用NodeJS运行一个WS服务端。
以下是一个 本地最简单的 WebSocket 服务端,使用 Node.js + ws 库 实现,适合开发调试。
初始化项目
1 | mkdir z-websocket-server |
安装依赖
1 | npm install ws |
ws是 Node.js 社区最流行、轻量且符合 RFC6455 标准的 WebSocket 库。
创建服务端代码
1 | // server.js |
启动服务
1 | node server.js |
输出:
1 | WebSocket 服务器启动,监听 ws://localhost:8080 |
测试连接
使用浏览器控制台(仅限简单文本)
打开浏览器开发者工具 → Console,输入:
1 | const ws = new WebSocket('ws://localhost:8080'); |
扩展建议(按需添加)
支持跨域(CORS)
ws 默认不限制 Origin,但若需显式允许:
1 | const wss = new WebSocket.Server({ |
广播消息给所有客户端
1 | // 在 message 处理中广播 |