- 自己写了个测试demo,放到电脑的浏览器中测试正常,可以打印websocket的open连接信息,但是放到手机上就不执行open事件了,直接close,为什么?
浏览器都是支持websocket的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script>
var ws = new WebSocket("ws://139.129.118.14:8083/killBoss/userSocket");
ws.onopen = function(evt) {
alert(1)
console.log("Connection open ...");
var obj={
"code": 0,
"latitude": 1,
"longitude": 2,
"prop": {
"describe": " this is a prop descibe",
"id": 1,
"isDelete": 0,
"status": 0,
"type": 2
},
"user": {
"headImageUrl": "asdfasdfasdfadfadf",
"id": 1,
"isDelete": 0,
"openId": "asdfadfadf",
"status": {
"attackers": [],
"blood": 3,
"code": 0,
"latitude": 1,
"killNo": 4,
"killUser": 1,
"longitude": 2,
"rank": 0,
"victim": null
},
"userName": "zhangsan"
}
}
ws.send(obj)
};
ws.onmessage = function(evt) {
console.log( "Received Message: " + evt.data);
// ws.close();
};
ws.onclose = function(evt) {
alert("close")
console.log("Connection closed.");
console.log(evt)
};
ws.onerror=function(evt){
console.log("error",evt)
}
</script>
<script>
$.ajax({
url:'http://192.168.0.106:8081/text.json',
success:function(res){
console.log(res)
}
})
</script>
</html>
移动端报错如下,我实在微信开发者工具中看的
也在排查是不是这个原因 域名问题
电脑上是可以打印open的,为什么手机就不能打印open
求大神指点
能执行就怪了!
websocket在手机webview中不可用.
遇到过这种需求, 我的解决方案是在手机端使用native原生socket来实现, 做成混合app.