如何将Android HTML / JS程序连接到LAN服务器?

时间:2014-02-04 05:52:55

标签: javascript android html node.js socket.io

注意:一般来说,对于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);

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

请确保您的手机已与WiFi连接,因此您的手机应该能够连接到您的服务器。如果不使用像dyndns.org这样的ddns(今天不是最佳选择)并为所有相关端口设置端口转发。

还记得通过http打开你的html文件。出于安全原因,可能会禁用与websockets的网络通信。

那应该解决你的问题。