更新记录

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]);

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android: android.permission.INTERNET;android.permission.CHANGE_NETWORK_STATE;android.permission.WRITE_SETTINGS; Harmony: ohos.permission.INTERNET; iOS: 无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问