我特么找到问题了,原来一段时间后udp端口会变,服务器把消息都发到之前缓存的端口去了。 奇怪的地方就是在客户端看回帧的localinfo的端口没显示改变,但是服务器收到客户端send的数据的端口已经变了,不知道这只是工具的问题还是手机也会有这种情况。。
UDP通信中onMessage为什么只有在send后才能收到回调?如题,使用udp通讯,但是onMessage只有在调用一次send发数据的5秒内能收到回调,超过时间或者没有先发送一次数据onMessage是收不到数据的,而且offMessage、offListening、onClose等均无异常。非常奇怪的问题,这是设定还是bug?
2022-08-052022了,我还遇到onMessage收不到东西的的问题。。
UDPSocket.onMessage 无法接收消息?UDPSocket.onMessage 在不先调用 UDPSocket.send 无法接受消息that.udpSocket = wx.createUDPSocket(); that.udpSocket.bind(35675); that.udpSocket.send({ address: '192.168.1.120', port: 54321, message: "hello world!" }); that.udpSocket.onListening(function(res) { console.log(res); }); that.udpSocket.onMessage(function(res) { console.log(res.message); console.log(res.remoteInfo.address); console.log(res.remoteInfo.port); console.log(res.remoteInfo.size); }); //基础库2.10.2
2022-08-03不能,小程序用户不同ip是不同的。 可以关闭白名单访问,定义一个端口号来通信,服务器监听此端口,小程序连接公司的公网ip+端口(注意防火墙要开放此端口号)。
微信小程序能否固定ip?我们公司的服务发布在公司内网,互联网想访问的话服务器需要配置白名单才能访问到,小程序是发布在互联网上的,能否固定小程序ip,使小程序能访问到公司内网
2021-05-13每个场地定义一个唯一key,创建一个配置文件,每个类别对应一组场地唯一key,例如 足球:[1001,1002,1003],羽毛球:[2001,2002,2003].,打开不同类别的页签时根据配置取出对应的场地的唯一key列表,然后遍历列表根据场地唯一key读取云数据库数据显示(云数据库以场地唯一key作为唯一索引,每个用户访问同一组数据) 实现一组时间函数,包括:获取当前时间戳、传入时间戳返回距今天的天数、传入时间戳返回日期 等,根据场地key读取云数据库数据后(数据结构参考本文最后)遍历state_list里面的order_tick,找出时间戳是当天(或者明天、后天、大后天)的那一项进行显示,如order_id是自己的id则显示自己预约,否则显示被其他用户预约,如果列表里寻找不到当天的时间戳,则显示未被预约。 当点击预约时需要在云函数写验证和修改数据库逻辑(修改时直接修改state_list里面时间戳小于当天0点的一项,其他项不变,order_tick根据预约的日期获取当天(或者明天、后天、大后天)的0点时间戳),小程序调用云函数仅传需要预约的0点时间戳和预约者id,云函数取出数据库的数据进行验证,千万别直接在小程序调用写库接口。 没有自己的服务器只能这样近似的实现了。 云数据库数据格式参考如下: { "index" : 1001, // 足球一号场地 "state_list": [ { "order_tick": 0, // 预定时间戳 "order_id": "wx_id" // 预定的用户id }, {},// 结构如上 {},.// 结构如上 {}// 结构如上 ] }
当一个场地被预约后,如何让后面的用户看到该场地已被预约?如下图,设计了一个场地预约小程序,使用的是云数据库。例如第一个场地已经被我预约了,如何让后面的用户看到本场地已被预约的标签或提示,给场地设定一个状态吗?设定状态的话如何让场地的状态每天进行更新。同时如何将云数据库中Ground集里的场地按照羽毛球场、足球场等类别按不同类在不同页面进行展示。[图片]
2021-05-13纠正:button属性在hide或者destory后无任何变化(输入法的锅..)
createUserInfoButton按钮hide或者destory时跳转场景导致按钮不消失问题?const button = wx.createUserInfoButton({...}) button.onTap((res) => { button.hide(); // 或者 button.destory() loadScene("mainScene"); // 利用此按钮作为登录按钮跳转至主场景 }) 如上代码,当onTap时销毁button然后跳转场景,会出现场景跳转之后按钮还没销毁的情况,需要在跳转后的场景再次点击按钮才会消失。(经多次测试发现规律,当按钮出现3秒内点击时场景跳转按钮正常销毁;当按钮出现超过3秒才点击则场景跳转按钮不会消失) 为了解决这个问题,后来想通过定时判断button状态,销毁才跳转场景,但是发现button属性在hide或者destory后无任务变化,也就是说不能通过button属性知道按钮是否消失。 求解决方法!!!感谢!!
2021-05-12