我们的需求是手机打开热点,笔记本连接热点,创建socket服务,手机通过小程序 tcpsocket 和服务器交互;
问题: 开发模式,服务器可以接受到小程序的连接;但是体验版,不打开开发者调试就报错 : connet fail: invalid address 192.168.2.87:8666
192.168.2.87:8666 // 是笔记本连接手机热点后的局域网地址;
请问有什么办法么? 或者我需要怎么做?
代码如下:
const tcp = wx.createTCPSocket();
const that = this;
console.log(that.data.connectDeviceIp, that.data.port)
tcp.connect({
address: that.data.connectDeviceIp,
port: that.data.port,
});
tcp.onConnect(() => {
console.log("tcpConnectSuccess");
tcp.write("hello, how are you");
});
tcp.onClose(function listener() {
console.log("tcpOnClose");
});
tcp.onMessage(({ message, ...res }) => {
this.setData({
socketMessage: `${new Uint8Array(message)}${
res?.remoteInfo?.address
}--${res?.localInfo?.address}`,
});
});
tcp.onError((res) => {
console.log("错误:", res);
showToast(res?.errMsg, 2000);
this.setData({
arrBufVal: res?.errMsg,
});
});
你把小程序 开发工具域名校验关了,看看TCPsocket报不报错,体验版要求有https 域名的
如果手机和笔记本同在一个局域网下,是可以的;
第二种情况是: 如果一台手机开流量并且给笔记本开热点,这时候就不通;但是把这台手机的流量关了只开热点,就通了~;
第三种情况: ios分享的话,好像都可以通;;