注意:一般来说,对于websockets和通信来说相对较新,所以请提供全面的建议!
我一直在使用带有HTML / JS / CSS的局域网聊天应用程序,并希望将其移植到Android(已经在PC上工作)。我的第一个直觉是打开HTML文件,就像我在计算机上一样 - 即保存到SD卡并用文件浏览器打开它。当我在计算机上打开应用程序时,服务器授权握手并继续获取和接收信息;当我在手机上打开它时,服务器授权握手......就是这样。之后手机没有回复。我有一种感觉,我遗漏了一些关于Android如何处理软件的基本信息,但我不知道是什么......
我将所有内容都归结为与服务器的简单LAN通信。
在PC上,下面的代码在服务器端输出“Hello:”。在Android上,什么都没有。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://192.168.1.112:4000/socket.io/socket.io.js"></script>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<script type="text/javascript" src="scriptsTeacher.js"></script>
</body>
</html>
Javascript客户端:
(function(){
var App;
App = {};
//sends connection event
App.socket = io.connect('192.168.1.112:4000');
App.init = function()
{
App.socket.emit('hello', { });
}
$(function() {
return App.init();
});
}).call(this);
Javascript服务器:
(function() {
var io;
io = require('socket.io').listen(4000, "0.0.0.0");
io.sockets.on('connection', function(socket)
{
socket.on('hello', function(data)
{
process.stdout.write("hello: ");
});
});
}).call(this);
感谢您的任何建议!
答案 0 :(得分:0)
请确保您的手机已与WiFi连接,因此您的手机应该能够连接到您的服务器。如果不使用像dyndns.org这样的ddns(今天不是最佳选择)并为所有相关端口设置端口转发。
还记得通过http打开你的html文件。出于安全原因,可能会禁用与websockets的网络通信。
那应该解决你的问题。