uniapp原生插件 TCP Socket 使用文档
试了插件市场几个TCP Socket插件都不能实现监听服务器主动断开,于是闲来无事就开发了一款,本插件是一个基于 Netty 实现的 TCP 通信模块,用于在 UniApp 插件中提供 TCP 连接、数据发送和连接管理功能。以下是模块的详细使用说明。
功能概述
- 打开 TCP 连接:通过指定的主机地址和端口号建立 TCP 连接。
- 发送数据:向已建立的 TCP 连接发送数据。
- 关闭 TCP 连接:断开当前的 TCP 连接并释放资源。
- 检查连接状态:查询当前 TCP 连接的状态。
- 设置连接状态:手动设置连接状态(内部使用)。
方法说明
1. 打开 TCP 连接
openTcp(params, callback)
参数
params
(Object): 包含以下键值对:host
(String): 目标主机地址,例如"127.0.0.1"
。port
(Integer/Double): 目标端口号,例如8080
。callback
(Function): 回调函数,返回操作结果。
回调返回值
code
(Number): 状态码,1
表示成功,0
表示失败。msg
(String): 操作结果描述信息。type
(String): 操作类型,固定为"CONNECTION_OPENED"
。
示例
tcpSocket.openTcp({ host: "127.0.0.1", port: 8080 }, (res) => { console.log(res); });
2. 发送数据
sendData(params, callback)
参数
params
(Object): 包含以下键值对:data
(String): 要发送的数据内容。callback
(Function): 回调函数,返回操作结果。
回调返回值
code
(Number): 状态码,1
表示成功,0
表示失败。msg
(String): 操作结果描述信息。data
(String): 发送的数据内容(仅在成功时返回)。type
(String): 操作类型,固定为"DATA_SENT"
。
示例
tcpSocket.sendData({ data: "Hello, TCP!" }, (res) => { console.log(res); });
3. 关闭 TCP 连接
closeTcp(callback)
参数
callback
(Function): 回调函数,返回操作结果。
回调返回值
code
(Number): 状态码,1
表示成功,0
表示失败。msg
(String): 操作结果描述信息。type
(String): 操作类型,固定为"CONNECTION_CLOSED"
。
示例
tcpSocket.closeTcp((res) => { console.log(res); });
4. 检查 TCP 连接状态
isTcpConnected(callback)
参数
callback
(Function): 回调函数,返回操作结果。
回调返回值
code
(Number): 状态码,1
表示成功,0
表示失败。msg
(String): 操作结果描述信息。connected
(Boolean): 当前连接状态,true
表示已连接,false
表示未连接。type
(String): 操作类型,固定为"STATUS_CHECKED"
。
示例
tcpSocket.isTcpConnected((res) => { console.log(res.connected); // true 或 false });
注意事项
异常处理
- 如果发生异常,所有方法都会通过回调返回错误信息,请确保正确处理异常情况。
字符编码
- 数据传输默认使用
GBK
编码,确保发送和接收方的编码一致。
- 数据传输默认使用
资源释放
- 在不再需要 TCP 连接时,务必调用
closeTcp
方法以释放资源。
- 在不再需要 TCP 连接时,务必调用
示例代码
以下是一个完整的使用示例:
// 打开 TCP 连接
tcpSocket.openTcp({
host: "127.0.0.1",
port: 8080
}, (res) => {
if (res.code === 1) {
console.log("TCP 连接已建立");
// 发送数据
tcpSocket.sendData({
data: "Hello, TCP!"
}, (sendRes) => {
if (sendRes.code === 1) {
console.log("数据发送成功");
} else {
console.error("数据发送失败:", sendRes.msg);
}
// 关闭 TCP 连接
tcpSocket.closeTcp((closeRes) => {
console.log(closeRes.msg);
});
});
} else {
console.error("无法建立 TCP 连接:", res.msg);
}
});
以上是 tcpSocket
模块的完整使用文档。如有其他问题,请参考源码或联系开发者。