问题的描述如下面链接中一致,本地对该问题的解决参见我在链接中的回答。简而言之这个问题没解决,但TCPSocket仍然能收到信息,设置onError逻辑能绕开这个问题。 https://developers.weixin.qq.com/community/develop/doc/0000260f960ab876f630861cd6b400
TCPSocket在电脑端和手机端运行情况不一致,errorcode -2,如何解决?微信版本8.0.42,基础库版本3.1.4[1067],手机华为mate 60 pro。小程序中开启了一个TCP Socket连接到公网服务器,在电脑端运行正常,手机端建立TCP连接后立刻断开,导致服务器端的发送信息无法接收。 ``` {sockfd: 480, errCode: -2, errNum: 0, errMsg: "recv socket fail: remote socket 480 closed"} ``` 代码即新建一个TCP连接,在发送一条字符串数据后等待传输数据,连接的域名是自己架设的服务器,使用花生壳映射到公网端口。已经在微信小程序服务器端做过登记。
2023-10-27请问您解决问题了么?我昨天也出现了相同的问题,想请教您后来的解决办法,谢谢! 后续记录一下: 暂不知道该问题的原因,复现情况是建立TCPSocket,在获取信息时获取的local和remote ip为空。关闭TCPSocket会报错,如上面题主的记录。本地暂时绕过了该问题,调试器和抓包发现,虽然local和remote的ip有问题,但里面是能有数据的。现在本地在onError时的回调函数里关闭了tcp连接,表现符合预期。在关闭TCP连接时会报错,无论是服务器端关闭还是客户端关闭都出现该问题。错误信息如楼主问题所示。猜测是微信小程序客户端收到信息时候把ip信息过滤掉了。设备端使用抓包助手抓包,包是正常的。考虑到仍然能接收到数据,我这边的需求暂时可以满足,不过微信小程序TCPSocket的onMessage函数的ip信息在模拟器和手机端表现不一致(至少已知的包括楼主的设备、个人使用华为Mate20 Mate60都存在这个问题)是肯定存在的,希望微信官方赶快修复吧。
TCPSocket 模拟器正常 真机调试报错?[图片] [图片] 发送第一条第二条信息成功,但是adress:0.0.0.0 port:0 然后报错 errCode为-2 查看文档对应errno又表示正常 白名单已配置
2023-10-26您好,我今天也遇到这个问题了。表现像是TCP客户端发送信息后立刻断开了TCP连接,后续服务器端发送的信息接收不到,请问您解决了么?谢谢!
微信小程序接收不到服务端发送socket? web端已经成功接收socketconst TCPSocket = wx.createTCPSocket(); TCPSocket.connect({address: 'https://域名', port: 9000});//在给定的套接字上启动连接 TCPSocket.onMessage(function (e) { console.log('onMessage'), console.log(e) });//监听当接收到数据的时触发该事件
2023-10-25我这里好像解决了这个问题,记录一下步骤: 配置tcp的服务器域名,无需端口号。配置后连接,errorcode仍然是-4配置socket和https的域名。配置后连接,仍然-4。配置了预解析,未测试猜测可能是开发设置中,小程序id在微信后台有登记。只有登记后的id才能通过服务器域名访问。新建一个工程并设置id为AppID。连接,成功[图片]
tcpSocket.connect()调用报错,请问是什么原因?wx.createTCPSocket()后,调用tcpSocket.connect({address:'192.168.1.196',port:6666})报错,报错信息为:“sockfd: 297, errCode: -2, errNum: 4, errMsg: "connect socket fail: errno:4 errmsg:Interrupted system call"”。微信版本8.0.11,手机型号Mi 10,基础库版本2.19.5,通信IP与手机IP处于同一个局域网且IP地址不相同。 [图片][图片]
2023-10-24