小程序实现UDP发送和接收,之前使用正常,最近使用发现UDPSocket.send发送数据失败,没有任何提示信息,在真机调试和预览情况下都不行(之前上线的小程序也失败)。小程序配置信息如下:
- 微信开发工具:V1.05.2201240
- 微信版本:8.0.16
- IOS版本:15.2.1
- 基础库版本:2.22.0
期间代码没有做过修改,见下:
this.data.udpSocket = wx.createUDPSocket();
if (this.data.udpSocket === null) {
console.log('暂不支持')
return;
}
const locationPort = this.data.udpSocket.bind()
console.log('UDP客户端端口号:'+locationPort)
this.setData({
isFirst: false,
port: locationPort
})
this.data.udpSocket.onListening(function (res) {
console.log('监听中Res ===' + res)
})
const password = this.data.password;
const ssid = this.data.ssid;
const port = this.data.port;
const openid = app.globalData.gopenid;
let message = JSON.stringify({
port,
password,
ssid,
openid
})
this.data.udp.send({
address: '192.168.4.1',
port: 8266,
message
});
// 监听UDP响应数据
this.data.udpSocket.onMessage((res) => {
console.log("get data from esp module");
console.log(res);
//字符串转换,很重要
let unit8Arr = new Uint8Array(res.message);
let encodedString = String.fromCharCode.apply(null, unit8Arr);
let data = decodeURIComponent(escape((encodedString)));
console.log("data:", data);
let str = JSON.parse(data);
switch (str.code) {
//成功收到信息
case 0:
wx.showToast({
title: '接收成功',
})
break;
//成功解析到信息
谢谢。
onError监听没有任何数据返回。使用‘调试微信开发工具’Network中,有“{"baseresponse":{"errcode":44002,"errmsg":"empty post data"}}”。请问wx.createUDPSocket接口是否和小程序硬件设备开通有关,目前小程序硬件设备未开通,但蹊跷的是上线小程序之前都是正常可以使用的,实在不清楚是哪里出了问题了。再次感谢。
onError监听一下是否有报错?