UDPSocket
一个 UDP Socket 实例,默认使用 IPv4 协议。
支持情况: 
  
 
方法
bind
绑定一个系统随机分配的可用端口,或绑定一个指定的端口号
支持情况: 
  
 
(port: number) => number
| 参数 | 类型 | 说明 | 
|---|---|---|
| port | number | 指定要绑定的端口号,不传则返回系统随机分配的可用端口 | 
示例代码
const udp = Taro.createUDPSocket()
udp.close()
setTTL
设置 IP_TTL 套接字选项,用于设置一个 IP 数据包传输时允许的最大跳步数
支持情况: 
  
 
(ttl: number) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| ttl | number | ttl 参数可以是 0 到 255 之间 | 
示例代码
const udp = Taro.createUDPSocket()
udp.onListening(function () {
  udp.setTTL(64)
})
udp.bind()
send
向指定的 IP 和 port 发送消息
支持情况: 
  
 
(option: Option) => void
| 参数 | 类型 | 
|---|---|
| option | Option | 
示例代码
const udp = Taro.createUDPSocket()
udp.bind()
udp.send({
  address: '192.168.193.2',
  port: 8848,
  message: 'hello, how are you'
})
connect
预先连接到指定的 IP 和 port,需要配合 write 方法一起使用
支持情况: 
  
 
(option: Option) => void
| 参数 | 类型 | 
|---|---|
| option | Option | 
write
用法与 send 方法相同,如果没有预先调用 connect 则与 send 无差异(注意即使调用了 connect 也需要在本接口填入地址和端口参数)
支持情况: 
  
 
() => void
close
关闭 UDP Socket 实例,相当于销毁。 在关闭之后,UDP Socket 实例不能再发送消息,每次调用 UDPSocket.send 将会触发错误事件,并且 message 事件回调函数也不会再也执行。在 UDPSocket 实例被创建后将被 Native 强引用,保证其不被 GC。在 UDPSocket.close 后将解除对其的强引用,让 UDPSocket 实例遵从 GC。
支持情况: 
  
 
() => void
onClose
监听关闭事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 关闭事件的回调函数 | 
offClose
取消监听关闭事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 关闭事件的回调函数 | 
onError
监听错误事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 错误事件的回调函数 | 
offError
取消监听错误事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 错误事件的回调函数 | 
onListening
监听开始监听数据包消息的事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 监听开始监听数据包消息的事件 | 
offListening
取消监听开始监听数据包消息的事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 监听开始监听数据包消息的事件 | 
onMessage
监听收到消息的事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 收到消息的事件的回调函数 | 
offMessage
取消监听收到消息的事件
支持情况: 
  
 
(callback: Callback) => void
| 参数 | 类型 | 说明 | 
|---|---|---|
| callback | Callback | 收到消息的事件的回调函数 | 
参数
connect
Option
| 参数 | 类型 | 说明 | 
|---|---|---|
| address | string | 要发消息的地址 | 
| port | number | 要发送消息的端口号 | 
onClose
Callback
当一个 socket 完全关闭就发出该事件的回调函数
(args: unknown[]) => void
| 参数 | 类型 | 
|---|---|
| args | unknown[] | 
onError
Callback
错误事件的回调函数
(result: CallbackResult) => void
| 参数 | 类型 | 
|---|---|
| result | CallbackResult | 
CallbackResult
| 参数 | 类型 | 说明 | 
|---|---|---|
| errMsg | string | 错误信息 | 
onListening
Callback
监听开始监听数据包消息的事件
(args: unknown[]) => void
| 参数 | 类型 | 
|---|---|
| args | unknown[] | 
onMessage
Callback
收到消息的事件的回调函数
(result: CallbackResult) => void
| 参数 | 类型 | 
|---|---|
| result | CallbackResult | 
CallbackResult
| 参数 | 类型 | 说明 | 
|---|---|---|
| message | ArrayBuffer | 收到的消息 | 
| remoteInfo | RemoteInfo | 发送端地址信息 | 
| localInfo | LocalInfo | 接收端地址信息 | 
RemoteInfo
发送端地址信息
| 参数 | 类型 | 说明 | 
|---|---|---|
| address | string | 发送消息的 socket 的地址 | 
| family | string | 使用的协议族,为 IPv4 或者 IPv6 | 
| port | number | 端口号 | 
LocalInfo
接收端地址信息
| 参数 | 类型 | 说明 | 
|---|---|---|
| address | string | 接收消息的 socket 的地址 | 
| family | string | 使用的协议族,为 IPv4 或者 IPv6 | 
| port | number | 端口号 | 
| size | number | message 的大小,单位:字节 | 
send
Option
| 参数 | 类型 | 默认值 | 必填 | 说明 | 
|---|---|---|---|---|
| address | string | 是 | 要发消息的地址。在基础库 <= 2.9.3 版本必须是和本机同网段的 IP 地址,或安全域名列表内的域名地址;之后版本可以是任意 IP 和域名 | |
| port | number | 是 | 要发送消息的端口号 | |
| message | string or ArrayBuffer | 是 | 要发送的数据 | |
| offset | number | 0 | 否 | 发送数据的偏移量,仅当 message 为 ArrayBuffer 类型时有效 | 
| length | number | message.byteLength | 否 | 发送数据的长度,仅当 message 为 ArrayBuffer 类型时有效 | 
API 支持度
| API | 微信小程序 | H5 | React Native | 
|---|---|---|---|
| UDPSocket | ✔️ | ||
| UDPSocket.bind | ✔️ | ||
| UDPSocket.setTTL | ✔️ | ||
| UDPSocket.send | ✔️ | ||
| UDPSocket.connect | ✔️ | ||
| UDPSocket.write | ✔️ | ||
| UDPSocket.close | ✔️ | ||
| UDPSocket.onClose | ✔️ | ||
| UDPSocket.offClose | ✔️ | ||
| UDPSocket.onError | ✔️ | ||
| UDPSocket.offError | ✔️ | ||
| UDPSocket.onListening | ✔️ | ||
| UDPSocket.offListening | ✔️ | ||
| UDPSocket.onMessage | ✔️ | ||
| UDPSocket.offMessage | ✔️ |