我已经编写了小型WebSocket应用程序,并试图在Android模拟器和Android设备上运行它(android 4.0.4版本)。
代码在android模拟器中工作正常但是当我尝试在设备上运行相同的代码时,它无法按预期工作。
下面是我的HTML websocket代码 -
<html>
<head>
<script src="www/js/jquery-1.8.2.min.js"></script>
</head>
<body>
<script language="javascript">
// test for websocket support
$(document).ready(function(){
if ("WebSocket" in window) {
alert("Your browser does support WebSockets");
} else { // no websocket support
alert("Your browser does not appear to support WebSockets");
}
var websocket;
websocket = new WebSocket("ws://192.168.0.1:8080/SampleWebApp/WebSocketServlet");
// called once the connection is established
websocket.onopen = function(evt) {
alert("open");
};
// called upon receipt of a message
websocket.onmessage = function(evt) {
alert("message");
};
// called when an error occurs
websocket.onerror = function(evt) {
alert("error");
};
// called when the connection is closed (by either side)
websocket.onclose = function() {
alert("close");
};
});
</script>
</body>
</html>
当我在Android设备模拟器中运行上面的代码时,我会正确获取与WebSocket事件相关的所有javascript警报消息。
然而,当我将相同的代码部署到实际的Android设备时,我只从上面的代码中获得一条警报消息 - “您的浏览器确实支持WebSockets”
感谢您的帮助,了解我在设备上运行时未触发WebSocket事件的原因。
此致 PRAS
答案 0 :(得分:0)
在设备上运行此代码时,是否更改了服务器IP地址? 你用什么浏览器? 默认Android浏览器不支持WebSockets。更多http://caniuse.com/websockets