更新记录
1.0.0(2026-07-24)
首版:TCP 客户端+服务端、UDP 客户端+服务端+广播(局域网设备发现),事件式收发 + 自动背压可观测。App-Android。
平台兼容性
uni-app x(5.14)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | × | × | × |
nex-socket 本地网络通信
TCP 客户端 + 服务端、UDP 客户端 + 服务端 + 广播(局域网设备发现)。高性能原生网络核,事件式收发,全程离线、无三方 SDK。
平台
- App-Android:全能力。
- App-iOS:下版本解锁(本版矩阵标不支持)。
- H5 / 小程序:不支持(raw socket 为 App 端原生能力,调用抛
UNSUPPORTED;用platformCapabilities().supported提前分支)。
事件模型(重要)
所有 inbound(新连接 / 收数据 / UDP 报文 / 断线 / 错误)进内部有界队列,JS 侧周期性调用 drainEvents(max) 拉取(如 setInterval 每 50–100ms),返回 JSON 字符串:
const engine = createSocketEngine()
const srv = engine.tcpListen(0) // { id, port }
const conn = engine.tcpConnect('127.0.0.1', srv.port, 1000)
setInterval(() => {
const evs = JSON.parse(engine.drainEvents(64)) // SocketEvent[]
for (const ev of evs) {
if (ev.type === 'accepted') { /* ev.connId, ev.peer */ }
else if (ev.type === 'data') { /* ev.connId, ev.bytes: number[] */ }
else if (ev.type === 'datagram'){ /* ev.sockId, ev.from, ev.bytes */ }
else if (ev.type === 'disconnected') { /* ev.connId, ev.reason */ }
else if (ev.type === 'error') { /* ev.id, ev.msg */ }
}
}, 80)
engine.tcpSend(conn, [104, 105]) // 发字节
engine.closeConn(conn)
诚实边界
- 后台持久性:前台可靠;应用退后台后 socket 存活受系统 Doze / 后台限制 / OEM ROM 影响,需前台服务 / 保活配合。不承诺后台常驻。
- 背压:内部队列满会丢最旧事件并计数,
droppedCount()可观测(持续 >0 说明drainEvents调用太慢)。 - 错误:Android 端连接/绑定/收发失败抛异常;iOS 端返回哨兵值(tcpConnect=-1 / bound.id=-1)+ console.error(双端差异)。
非目标
不含 MQTT(见 nex-mqtt)/ modbus(见 nex-modbus)/ BLE / TLS 证书管理 / P2P NAT 穿透。

收藏人数:
购买普通授权版(
试用
赞赏(0)
下载 1178
赞赏 0
下载 12453947
赞赏 1935
赞赏
京公网安备:11010802035340号