UDP插件API文档(Uniapp)
    正在准备搜索索引...

    类 UtsUdpClient

    UDP客户端链接 封装的UDP Socket相关操作,包括:创建UDP链接、销毁UDP链接,发送消息,接收消息等能力。

    tickstep

    1.0.0

    1.0.0

    UDP客户端,用于发送消息给到服务端,并接收服务端回复的消息。 不同系统平台有些不一样的地方,需要开发者注意并做好适配。

    • 单播
      安卓、苹果、鸿蒙三大平台基本一致,没有明显差异。

    • 广播

    1. 苹果iOS平台要注意,广播客户端无法同时进行消息接收和消息发送。安卓、鸿蒙系统支持同时收发消息。
    2. 苹果iOS如果使用全网广播地址 255.255.255.255 需要先到苹果开发者网申请 com.apple.developer.networking.multicast 的 .entitlements 广播权限,否则广播无效果。 参考 苹果官网申请权限链接 获取更多信息
    • 组播
      苹果iOS使用组播需要到苹果开发者网申请 com.apple.developer.networking.multicast 的 .entitlements 组播权限,否则组播无效果。 参考 苹果官网申请权限链接 获取更多信息
    // 初始化单播UDP客户端
    let unicastUdpClient : UtsUdpClient = new UtsUdpClient();
    unicastUdpClient.initUdpSocket(
    // 配置
    {
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "unicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    destAddress: "192.168.50.130", // 目标地址
    destPort: 30101 // 目标端口
    },
    // 回调
    {
    // 接受消息,如果不需要接收消息可以去掉
    onReceivedData(session, message) {
    log("【单播-客户端】链接接收到消息:", session, message)
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("创建UDP链路回调结果:", errMsg)

    // 初始化成功,开始发送消息
    if (errMsg.code == 0) {
    log("发送单播消息")
    unicastUdpClient.sendUdpMessage({
    dataType: "text",
    data: "hello, world"
    },(errMsg : UtsErrorMessage) => {
    log("发送消息回调结果:", errMsg)
    })
    }
    }
    )
    // 初始化广播UDP客户端
    broadcastUdpClient.initUdpSocket(
    // 配置
    {
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "broadcast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    destAddress: "192.168.50.255", // 目标广播地址。广播地址主要分为子网广播、全网广播。全网广播地址255.255.255.255需要所在网络支持。
    destPort: 30101 // 目标广播端口
    },
    // 回调
    {
    // 接受消息,如果不需要接收消息可以去掉
    onReceivedData(session, message) {
    log("【广播-客户端】链接接收到消息:", session, message)
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("创建UDP链路回调结果:", errMsg)

    // 初始化成功,开始发送消息
    if (errMsg.code == 0) {
    log("发送广播消息")
    broadcastUdpClient.sendUdpMessage({
    dataType: "text",
    data: "hello, world"
    },(errMsg : UtsErrorMessage) => {
    log("发送消息回调结果:", errMsg)
    })
    }
    }
    )
    // 初始化组播UDP客户端
    multicastUdpClient.initUdpSocket(
    // 配置
    {
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "multicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    destAddress: "239.192.1.10" // 目标组播地址。主要分为局域网组播、跨网段组播。跨网段组播需要所在网络支持。
    destPort: 30101 // 目标组播端口
    },
    // 回调
    {
    // 接受消息,如果不需要接收消息可以去掉
    onReceivedData(session, message) {
    log("【组播-客户端】链接接收到消息:", session, message)
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("创建UDP链路回调结果:", errMsg)

    // 初始化成功,开始发送消息
    if (errMsg.code == 0) {
    log("发送单播消息")
    multicastUdpClient.sendUdpMessage({
    dataType: "text",
    data: "hello, world"
    },(errMsg : UtsErrorMessage) => {
    log("发送消息回调结果:", errMsg)
    })
    }
    }
    )
    索引

    构造函数

    方法

    • 初始化UDP链接。
      UDP链接运行过程如果有错误信息会通过 UtsUdpClientCallback#onErrorStr 反馈给调用客户端

      参数

      返回 void

      函数没有返回任何值

      // 初始化单播UDP
      unicastUdpClient.initUdpSocket(
      // 配置
      {
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "unicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      destAddress: "192.168.50.130",
      destPort: 30101
      },
      // 回调
      {
      // 接受消息,如果不需要接收消息可以去掉
      onReceivedData(session, message) {
      log("【单播-客户端】链接接收到消息:", session, message)
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("创建UDP链路回调结果:", errMsg)
      }
      )
      // 初始化广播UDP
      broadcastUdpClient.initUdpSocket(
      // 配置
      {
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "broadcast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      destAddress: "192.168.50.255",
      destPort: 30101
      },
      // 回调
      {
      // 接受消息,如果不需要接收消息可以去掉
      onReceivedData(session, message) {
      log("【广播-客户端】链接接收到消息:", session, message)
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("创建UDP链路回调结果:", errMsg)
      }
      )
      // 初始化组播UDP
      multicastUdpClient.initUdpSocket(
      // 配置
      {
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "multicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      destAddress: "239.192.1.10",
      destPort: 30101
      },
      // 回调
      {
      // 接受消息,如果不需要接收消息可以去掉
      onReceivedData(session, message) {
      log("【组播-客户端】链接接收到消息:", session, message)
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("创建UDP链路回调结果:", errMsg)
      }
      )
    • 发送消息

      参数

      返回 void

      // 发送文本消息
      unicastUdpClient.sendUdpMessage({
      dataType: "text",
      data: "hello, world"
      },(errMsg : UtsErrorMessage) => {
      log("发送消息回调结果:", errMsg)
      })
      // 发送二进制byte消息
      unicastUdpClient.sendUdpMessage({
      dataType: "byte",
      byteData: [0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x31, 0x32, 0x33], // hello,123
      },(errMsg : UtsErrorMessage) => {
      log("发送消息回调结果:", errMsg)
      })
      // 发送hex十六进制字符串消息
      unicastUdpClient.sendUdpMessage({
      dataType: "hex",
      data: "68656c6c6f2c313233" // hello,123
      },(errMsg : UtsErrorMessage) => {
      log("发送消息回调结果:", errMsg)
      })
    • 关闭UDP链接

      返回 void

    • UDP链接是否运行中

      返回 boolean

      true-运行中,false-未运行