# udp-client ## 介绍 一个简单的支持安卓平台的,广播和接收 `udp` 数据的插件。 ## 使用场景 1. 服务端知道设备的 IP 之后,可以给设备发送消息,同时设备也可以给服务端发送消息 2. 服务端给同个网断内的设备广播消息 3. 客户端给同个网断内的设备互相广播 ## Demo ```javascript const udpClient = uni.requireNativePlugin('udp-client'); export default { data: function() { return { socketPort: 10005, } }, onLoad() { /** * 如果需要使用 hexString, 请在 init 之前调用 * 之后会在返回数据多一个 hex 字段 */ udpClient.setUseHex(true); /** * 设置接受的字节大小,单位是 byte,默认 1024 * 请按需设置,过大可能会影响性能,或导致奔溃 */ udpClient.setByteSize(2048); /** * 在设备初始化,监听 10005 端口。 * 假设本设备 IP 为 192.168.2.35 * 那么服务端,或者其设备,就可以给 192.168.2.35:10005 发送消息了 */ udpClient.init(this.socketPort, this.onSocketMsg, this.onSocketError); }, methods: { onSocketMsg(resData) { // resData 的数据结构:{ host, port, data, hex } console.log("接收到消息: " + resData); // 收到消息如果想响应 udpClient.send({ host: resData.host, port: resData.port, data: JSON.stringify({code: 1, msg: "我收到消息啦~"}), useHex: true, // 使用 hexString ,默认为 false }); }, onSocketError(errMsg) { console.error("socket 异常:" + errMsg); }, }, onUnload() { // 释放 socket,释放端口 udpClient.release(); } } ``` ## 使用文档 ### 引入 ```javascript // #ifdef APP-PLUS const client = uni.requireNativePlugin('udp-client'); // #endif ``` ### 初始化 ```javascript /** * 初始化 * @param listenPort 监听的端口 * @param (res) => {} 返回消息 res: {host: string, port: number, data: string, hex: string} * @param (errMsg) => {} 异常消息 */ client.init(listenPort, (res) => { }, (errMsg) => { }); ``` ### 发送消息 ```javascript /** * 发送消息 */ client.send({ data: String, port: number, host: String, // 可选,不传默认为广播 255.255.255.255 useHex: Boolean, // 是否发送 hexString,默认 false }); ``` ### 释放 ```javascript /** * 释放,拿到数据之后手动释放,不然会占用资源 */ client.release(); ``` ### 设置是否打印日志 ```javascript // 是否在开发工具里(比如: Android Studio )里打印日志 client.setIsDebug(false); ```