我尝试开发一个连接到websocket服务器的简单移动应用程序。我用 Phonegap Build 来制作我的Android .apk,这是 html 代码:
<html>
<head>
<title>Testing websockets</title>
</head>
<body>
<div id="messages"></div>
<script type="text/javascript">
var webSocket =
new WebSocket('ws://192.168.82.1:8080/WebSocket/websocket');
webSocket.onerror = function(event) {
onError(event)
};
webSocket.onopen = function(event) {
onOpen(event)
};
webSocket.onmessage = function(event) {
onMessage(event)
};
function onMessage(event) {
document.getElementById('messages').innerHTML
+= '<h1 align="center"/>' +" "+ event.data;
}
function onOpen(event) {
document.getElementById('messages').innerHTML
+= '<h1 align="center"/>connection established';
}
function onError(event) {
alert(event.data);
}
</script>
</body>
</html>
我的导航器上的代码工作正常,但是当我使用Android应用程序时,甚至没有出现“建立连接”消息。 这段代码有问题或者我的应用需要一些库吗?
PS:我有另一个代码,其中有一个按钮向服务器发送消息并从中接收文本,当然这也是同样的问题!
答案 0 :(得分:2)
仅在Android 4.4之后的WebView中支持WebSockets。因此,如果你想在较旧的Android版本中使用它,你有一些选择:
使用提供该功能的Cordova插件。例如,https://github.com/knowledgecode/WebSocket-for-Android(这只是一个例子,我从未使用过该插件)
使用类似SockJS或socket.io的内容在支持时提供webSockets,而在不支持的情况下使用其他技术。请注意,使用这些技术还需要您在服务器中使用它们