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

    类 UtsUdpServer

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

    tickstep

    1.0.0

    1.0.0

    UDP服务端,用于指定本地端口开启监听,接收外部客户端发送过来的消息,并按需回复消息给客户端。 不同系统平台有些不一样的地方,需要开发者注意并做好适配。

    • 单播
    1. 苹果iOS平台要注意,在iOS中使用单播服务端回复消息给客户端的时候,使用的是随机端口,和监听的端口是不一样的。 安卓、鸿蒙平台监听的端口和回复消息的端口是同一个。
    • 广播
    1. 苹果iOS平台要注意,在iOS中使用广播服务端回复消息给客户端的时候,使用的是随机端口,和监听的端口是不一样的。 安卓、鸿蒙平台监听的端口和回复消息的端口是同一个。
    2. 苹果iOS如果使用全网广播地址 255.255.255.255 需要先到苹果开发者网申请 com.apple.developer.networking.multicast 的 .entitlements 广播权限,否则广播无效果。
      参考 苹果官网申请权限链接 获取更多信息
    • 组播
      苹果iOS使用组播需要到苹果开发者网申请 com.apple.developer.networking.multicast 的 .entitlements 组播权限,否则组播无效果。 参考 苹果官网申请权限链接 获取更多信息
    // 初始化单播UDP服务端
    let unicastUdpServer : UtsUdpServer = new UtsUdpServer()
    // 初始化服务
    unicastUdpServer.initUdpSocket(
    // 配置
    {
    listenLocalPort: 20101,
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "unicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    },
    // 回调
    {
    // 接受到客户端发送过来的数据消息
    onReceivedData(session, message) {
    log("【单播-服务端】链接接收到消息:", session, message)
    // 对接收的消息进行处理
    // ...............例如.............
    // 回复消息给客户端
    unicastUdpServer.sendUdpMessage({
    dataType: "text",
    data: "this is reply from unicast udp server",
    destAddress: session.remoteAddress,
    destPort: session.remotePort
    },(errMsg : UtsErrorMessage) => {
    log("发送消息回调结果:", errMsg)
    })
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("初始化UDP链路回调结果:", errMsg)
    }
    )
    // 初始化广播UDP服务端
    let broadcastUdpServer : UtsUdpServer = new UtsUdpServer()
    broadcastUdpServer.initUdpSocket(
    // 配置
    {
    listenLocalPort: 20101,
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "broadcast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    },
    // 回调
    {
    // 接受到客户端发送过来的数据消息
    onReceivedData(session, message) {
    log("【广播-服务端】链接接收到消息:", session, message)
    // 对接收的消息进行处理
    // ...............例如.............
    // 回复消息给客户端
    broadcastUdpServer.sendUdpMessage({
    dataType: "text",
    data: "this is reply from unicast udp server",
    destAddress: session.remoteAddress,
    destPort: session.remotePort
    },(errMsg : UtsErrorMessage) => {
    log("发送消息回调结果:", errMsg)
    })
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("初始化UDP链路回调结果:", errMsg)
    }
    )
    // 初始化组播UDP服务端
    let unicastUdpServer : UtsUdpServer = new UtsUdpServer()
    unicastUdpServer.initUdpSocket(
    // 配置
    {
    listenLocalPort: 20101,
    dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
    broadcastType: "multicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
    multicastGroup: "239.192.1.10" // 组播地址,必填。
    },
    // 回调
    {
    // 接受到客户端发送过来的数据消息
    onReceivedData(session, message) {
    log("【组播-服务端】链接接收到消息:", session, message)
    // 对接收的消息进行处理......
    },
    // 错误消息
    onErrorStr(errorMsg) {
    log("错误消息:", errorMsg)
    },
    },
    (errMsg : UtsErrorMessage) => {
    log("初始化UDP链路回调结果:", errMsg)
    }
    )
    索引

    构造函数

    方法

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

      参数

      返回 void

      函数没有返回任何值

      // 初始化单播UDP服务端
      unicastUdpServer.initUdpSocket(
      // 配置
      {
      listenLocalPort: 20101,
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "unicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      },
      // 回调
      {
      // 接受到客户端发送过来的数据消息
      onReceivedData(session, message) {
      log("【单播-服务端】链接接收到消息:", session, message)
      // 对接收的消息进行处理......
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("初始化UDP链路回调结果:", errMsg)
      }
      )
      // 初始化广播UDP服务端
      broadcastUdpServer.initUdpSocket(
      // 配置
      {
      listenLocalPort: 20101,
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "broadcast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      },
      // 回调
      {
      // 接受到客户端发送过来的数据消息
      onReceivedData(session, message) {
      log("【广播-服务端】链接接收到消息:", session, message)
      // 对接收的消息进行处理......
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("初始化UDP链路回调结果:", errMsg)
      }
      )
      // 初始化组播UDP服务端
      unicastUdpServer.initUdpSocket(
      // 配置
      {
      listenLocalPort: 20101,
      dataType: "text", // 接收的数据格式,支持:text-文本,hex-十六进制字符串,byte-二进制byte数组
      broadcastType: "multicast", // 支持:unicast-单播,multicast-组播,broadcast-广播
      multicastGroup: "239.192.1.10" // 组播地址,必填
      },
      // 回调
      {
      // 接受到客户端发送过来的数据消息
      onReceivedData(session, message) {
      log("【组播-服务端】链接接收到消息:", session, message)
      // 对接收的消息进行处理......
      },
      // 错误消息
      onErrorStr(errorMsg) {
      log("错误消息:", errorMsg)
      },
      },
      (errMsg : UtsErrorMessage) => {
      log("初始化UDP链路回调结果:", errMsg)
      }
      )
    • 发送消息

      参数

      返回 void

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

      返回 void

    • UDP链接是否运行中

      返回 boolean

      true-运行中,false-未运行