- UDP能向非同一子网的外网服务器发消息吗?需要配置域名吗?需要加入白名单吗?
主要代码: [代码]console.log([代码][代码]"onLaunch called"[代码][代码]);[代码][代码]console.log([代码][代码]"test udp code begin"[代码][代码]);[代码][代码] [代码] [代码]const udp = wx.createUDPSocket();[代码][代码]udp.bind();[代码][代码]udp.send({[代码][代码] [代码][代码]address: [代码][代码]'写死的IP地址或者域名都不行'[代码][代码],[代码][代码] [代码][代码]port: 10000,[代码][代码] [代码][代码]message: [代码][代码]'hello, how are you'[代码][代码]});[代码][代码]console.log([代码][代码]"message sent."[代码][代码]);[代码][代码]udp.onMessage([代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]console.log([代码][代码]"udp.OnMessage res:"[代码][代码], res);[代码][代码] [代码][代码]let unit8Arr = [代码][代码]new[代码] [代码]Uint8Array(res.message);[代码][代码] [代码][代码]let encodedString = String.fromCharCode.apply([代码][代码]null[代码][代码], unit8Arr);[代码][代码] [代码][代码]let message = decodeURIComponent(escape((encodedString)));[代码][代码] [代码][代码]console.log(message);[代码][代码] [代码][代码]console.log(res.remoteInfo);[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]receiveMessage: message,[代码][代码] [代码][代码]fromIp: res.remoteInfo.address[代码][代码] [代码][代码]})[代码][代码]});[代码][代码]console.log([代码][代码]"test udp code end"[代码][代码]);[代码]注意我的IP地址是一个外网的服务器的地址,有域名,用域名也不行。我用其他方式尝试往这个地址建立UDP连接是可以成功建立的,排除防火墙之类的问题。 我想问的是,UDP是不是只能局域网发消息?我看有的帖子说是只能和自己在同一个子网段,比如192.168.2.*的话就只能发给192.168.2.*。主要是我看到目前市面上很多的WEBSOCKET库做的游戏,老是断线。TCP的包头确实很大,又不想用HTTP,那样的话包头更大。所以想尝试用UDP直接建立连接。我看有的帖子是UDP直接和服务器建立连接成功了,所以才去写的测试用例的。有人遇到过吗?UDP到底是只能发自己同一子网的,还是可以发任意IP地址?是一定要域名吗?我是测试版,不是发布版,应该不用把域名加到列表里吧?
2019-11-25 - UDP为什么要求用域名呢,以及UDP域名为什么要限制20个呢?
https用域名是因为涉及到证书,但UDP为什么也要配域名呢 我们处理战斗相关服务器考虑到延迟所以走了UDP,目前是给每个服务器配了个域名。但UDP域名限制了20个,因此将来如果服务器多了就不够用了,就得弄个网关/负载均衡性质的服务器配上域名,由网关/负载均衡转发给具体的战斗服,就平白多了次转发,多少会增加些延迟 所以想问下官方,出于什么目的要限制UDP使用域名呢,以及为什么要限制个数呢。。希望能放开下UDP的限制~ 谢谢
2019-11-08