title: UDPSocket

sidebar_label: UDPSocket

一个 UDP Socket 实例,默认使用 IPv4 协议。

支持情况:UDPSocket - 图1 UDPSocket - 图2 UDPSocket - 图3

参考文档

方法

bind

绑定一个系统随机分配的可用端口,或绑定一个指定的端口号

支持情况:UDPSocket - 图4 UDPSocket - 图5 UDPSocket - 图6

参考文档

  1. (port: number) => number
参数 类型 说明
port number 指定要绑定的端口号,不传则返回系统随机分配的可用端口

示例代码

  1. const udp = Taro.createUDPSocket()
  2. udp.close()

setTTL

设置 IP_TTL 套接字选项,用于设置一个 IP 数据包传输时允许的最大跳步数

支持情况:UDPSocket - 图7 UDPSocket - 图8 UDPSocket - 图9

参考文档

  1. (ttl: number) => void
参数 类型 说明
ttl number ttl 参数可以是 0 到 255 之间

示例代码

  1. const udp = Taro.createUDPSocket()
  2. udp.onListening(function () {
  3. udp.setTTL(64)
  4. })
  5. udp.bind()

send

向指定的 IP 和 port 发送消息

支持情况:UDPSocket - 图10 UDPSocket - 图11 UDPSocket - 图12

参考文档

  1. (option: Option) => void
参数 类型
option Option

示例代码

  1. const udp = Taro.createUDPSocket()
  2. udp.bind()
  3. udp.send({
  4. address: '192.168.193.2',
  5. port: 8848,
  6. message: 'hello, how are you'
  7. })

connect

预先连接到指定的 IP 和 port,需要配合 write 方法一起使用

支持情况:UDPSocket - 图13 UDPSocket - 图14 UDPSocket - 图15

参考文档

  1. (option: Option) => void
参数 类型
option Option

write

用法与 send 方法相同,如果没有预先调用 connect 则与 send 无差异(注意即使调用了 connect 也需要在本接口填入地址和端口参数)

支持情况:UDPSocket - 图16 UDPSocket - 图17 UDPSocket - 图18

参考文档

  1. () => void

close

关闭 UDP Socket 实例,相当于销毁。 在关闭之后,UDP Socket 实例不能再发送消息,每次调用 UDPSocket.send 将会触发错误事件,并且 message 事件回调函数也不会再也执行。在 UDPSocket 实例被创建后将被 Native 强引用,保证其不被 GC。在 UDPSocket.close 后将解除对其的强引用,让 UDPSocket 实例遵从 GC。

支持情况:UDPSocket - 图19 UDPSocket - 图20 UDPSocket - 图21

参考文档

  1. () => void

onClose

监听关闭事件

支持情况:UDPSocket - 图22 UDPSocket - 图23 UDPSocket - 图24

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 关闭事件的回调函数

offClose

取消监听关闭事件

支持情况:UDPSocket - 图25 UDPSocket - 图26 UDPSocket - 图27

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 关闭事件的回调函数

onError

监听错误事件

支持情况:UDPSocket - 图28 UDPSocket - 图29 UDPSocket - 图30

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 错误事件的回调函数

offError

取消监听错误事件

支持情况:UDPSocket - 图31 UDPSocket - 图32 UDPSocket - 图33

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 错误事件的回调函数

onListening

监听开始监听数据包消息的事件

支持情况:UDPSocket - 图34 UDPSocket - 图35 UDPSocket - 图36

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 监听开始监听数据包消息的事件

offListening

取消监听开始监听数据包消息的事件

支持情况:UDPSocket - 图37 UDPSocket - 图38 UDPSocket - 图39

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 监听开始监听数据包消息的事件

onMessage

监听收到消息的事件

支持情况:UDPSocket - 图40 UDPSocket - 图41 UDPSocket - 图42

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 收到消息的事件的回调函数

offMessage

取消监听收到消息的事件

支持情况:UDPSocket - 图43 UDPSocket - 图44 UDPSocket - 图45

参考文档

  1. (callback: Callback) => void
参数 类型 说明
callback Callback 收到消息的事件的回调函数

参数

connect

Option

参数 类型 说明
address string 要发消息的地址
port number 要发送消息的端口号

onClose

Callback

当一个 socket 完全关闭就发出该事件的回调函数

  1. (args: unknown[]) => void
参数 类型
args unknown[]

onError

Callback

错误事件的回调函数

  1. (result: CallbackResult) => void
参数 类型
result CallbackResult

CallbackResult

参数 类型 说明
errMsg string 错误信息

onListening

Callback

监听开始监听数据包消息的事件

  1. (args: unknown[]) => void
参数 类型
args unknown[]

onMessage

Callback

收到消息的事件的回调函数

  1. (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 ✔️