//封装的连接udp的方法如下,华为手机连接时,部分设备onMessage,onError, onClose的回调都没进入。部分设备是正常,回调方法都能正常执行。使用uni-app开发。
//小米手机是全部都不能连接,控制台报同样的问题
createUDPSocket({
port,
message,
onMessageCallBack
}) {
console.log('createUDPSocket')
const udpSocket = wx.createUDPSocket()
udpSocket.bind(port)
udpSocket.send({
address: '192.168.1.1',
port,
message
})
console.log('发送请求了')
udpSocket.onMessage(onMessageCallBack)
udpSocket.onError((err) => {
console.log('err===', err)
})
udpSocket.onClose(() => {
console.log('关闭了')
})
return () => {
udpSocket.offMessage(onMessageCallBack)
udpSocket.close()
}
}
//调用的方法如下
connectDevice() {
const onMessageCallback = ({
message,
remoteInfo,
localInfo
}) => {
console.log('进入回调了')
//回调的处理方式,绘制canvas
}
// 获取图像
this.createUDPSocket({
port: 7080,
message: new Uint8Array([0x20, 0x36]),
onMessageCallBack: onMessageCallback
})
}
真机预览控制台进入不到回调的设备会打印图下信息: