更新记录
1.2.6(2025-02-11)
修复iOS端发送字符串消息,服务端接收乱码的问题
1.2.5(2025-01-24)
修复Android平台执行close方法时,onClose回调被执行了两次
1.2.4(2024-12-29)
- 修复同时连接多个实例,返回ID相同的bug
- 破坏性更新:原来的id为number类型,现改为string类型
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.8.12,Android:4.4,iOS:9,HarmonyNext:支持 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
wtto-TCPSocket
app-vue/js/ts 项目用法
引入插件
import { connect, bindWifiConnect } from "@/uni_modules/wtto-TCPSocket/api.js";
连接 TCP Socket
const TCP_ADDRESS = "192.168.31.254";
const TCP_PORT = 6668;
connect(
{
address: TCP_ADDRESS,
port: TCP_PORT,
},
(instance) => {
// 连接成功后的回调,这里的instance实例可以直接调用改实例的方法
console.log("连接成功", instance);
// do your actions
// 调用instance的onClose和onMessage方法,监听回调
// 之后可以调用instance.write方法,发送消息
},
(err) => {
// 发生错误的回调,全生命周期有效,即其他接口的错误信息也是使用此回调
console.error(`出错了: ${err.errMsg}`);
}
);
绑定 WIFI 连接 TCP Socket
仅支持Android >= 5.0 版本
bindWifiConnect(
{
address: TCP_ADDRESS,
port: TCP_PORT,
},
(instance) => {
// 连接成功后的回调,这里的instance实例可以直接调用改实例的方法
console.log("连接成功", instance);
// do your actions
// 调用instance的onClose和onMessage方法,监听回调
// 之后可以调用instance.write方法,发送消息
},
(err) => {
// 发生错误的回调,全生命周期有效,即其他接口的错误信息也是使用此回调
console.error(`出错了: ${err.errMsg}`);
}
);
主动断开连接
instance.close();
监听连接断开事件
instance.onClose(() => {
console.log("已断开连接");
});
监听接收消息
instance.onMessage((data) => {
console.log(`接收到消息: ${JSON.stringify(data)}`);
const buffer = new Uint8Array(data);
// buffer => string
const message = buffer.reduce((msg, item) => msg + String.fromCharCode(item), "");
console.log(`接收到消息转为字符串: ${message}`);
});
发送字符串消息
instance.writeString("Hi");
发送 Buffer 消息
// 72=0x48='H' 105=0x69='i'
const buffer = new Uint8Array([72, 105]);
instance.write([...buffer]);
// 即相当于: instance.write([72, 105]);
uniapp-x/uts 项目用法
准备
插件下载到项目后,请把文件uni_modules/wtto-TCPSocket/api.ts
重命名为api.uts
。
引入插件
import { ConnectOptions, Err, TcpSocket, bindWifiConnect, connect } from "@/uni_modules/wtto-TCPSocket/api.uts";
连接 TCP Socket
const TCP_ADDRESS = "192.168.31.254";
const TCP_PORT = 6668;
connect(
{
address: TCP_ADDRESS,
port: TCP_PORT,
} as ConnectOptions,
(instance: TcpSocket) => {
// 连接成功后的回调
console.log("连接成功", instance.id);
// do your actions
// 调用onClose和onMessage方法,监听回调
// 之后可以调用write方法,发送消息
},
(err: Err) => {
// 发生错误的回调,全生命周期有效,即其他接口的错误信息也是使用此回调
console.error(`出错了: ${err.errMsg}`);
}
);
绑定 WIFI 连接 TCP Socket
仅支持Android >= 5.0 版本
bindWifiConnect(
{
address: TCP_ADDRESS,
port: TCP_PORT,
} as ConnectOptions,
(instance: TcpSocket) => {
// 连接成功后的回调
console.log("连接成功", instance.id);
// do your actions
// 调用onClose和onMessage方法,监听回调
// 之后可以调用write方法,发送消息
},
(err: Err) => {
// 发生错误的回调,全生命周期有效,即其他接口的错误信息也是使用此回调
console.error(`出错了: ${err.errMsg}`);
}
);
主动断开连接
instance.close();
监听连接断开事件
instance.onClose(() => {
console.log("已断开连接");
});
监听接收消息
instance.onMessage((data: number[]) => {
console.log(`接收到消息: ${JSON.stringify(data)}`);
const buffer = new Uint8Array(data);
// buffer => string
const message = buffer.reduce((msg: string, item: number): string => msg + String.fromCharCode(item), "");
console.log(`接收到消息转为字符串: ${message}`);
});
发送字符串消息
instance.writeString("Hi");
发送 Buffer 消息
// 72=0x48='H' 105=0x69='i'
instance.write([72, 105]);