我需要用手机app给设备发指令信息,先用同一路由器下的电脑作为server端测试,电脑上只运行网络调试助手。
手机的地址是10.168.1.101,电脑作为server端地址是10.168.1.100,端口在网络助手里设置为4000.
我app上也很简单就调用了官方文档里写的那几个uni.websocket方法,结果一直是uni.connectsocket能调用成功,但是始终open失败,然后我测试使用了这个外网的测试服务器地址,结果收发正常。
在电脑端上看,就只有在connectsocket调用的时候,网络调试助手里出现了一次信息,之后因为open失败所以收不到信息了。
想问问问题出在哪?是端口被什么安全屏蔽之类的原因么?还是说电脑开启一个网络调试助手不足以作为“正常”的server端,必须要代码进行相关配置?
beforeDestroy() {
this.closeSocket();
},
methods: {
initWebSocket() {
let that = this;
this.socketTask = uni.connectSocket({
url: "ws://10.168.1.100:4000",
// url: 'ws://172.16.1.1:4000',
success(res) {
console.log("WebSocket连接成功!");
}
});
uni.onSocketOpen(function(res) {
that.isSocketOpen = true;
console.log("WebSocket已打开!");
uni.onSocketMessage(function(res) {
console.log("收到:" + res.data);
uni.showToast({
title: "收到:" + res.data
})
if (res.data) {}
})
});
uni.onSocketError(function(err) {
console.log("WebSocket连接打开失败,请检查!" + err);
});
// uni.onSocketMessage(function(res) {
// console.log("收到:" + res.data);
// uni.showToast({
// title: "收到:" + res.data
// })
// if (res.data) {}
// });
},
closeSocket() {
uni.closeSocket();
this.isSocketOpen = false;
this.websock = null;
uni.onSocketClose(function(res) {
console.log("WebSocket已关闭!");
});