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

标签 javascript android html node.js socket.io

注意:对于 websocket 和一般通信来说相对较新,所以也请提供总体建议!

我一直在使用 HTML/JS/CSS 开发 LAN 聊天应用程序,并希望将其移植到 Android(已经在 PC 上运行)。我的第一直觉是像在计算机上一样打开 HTML 文件 - 即保存到 SD 卡并使用文件资源管理器打开它。当我在计算机上打开应用程序时,服务器会授权握手并继续获取和接收信息;当我在手机上打开它时,服务器授权握手......就是这样。之后电话里就没有任何回应。我有一种感觉,我错过了有关 Android 如何处理软件的一些基本知识,但我不知道是什么......

我将一切归结为与服务器的简单 LAN 通信。

在 PC 上,下面的代码在服务器端输出“Hello:”。在安卓上,什么都没有。

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);

感谢您的建议!

最佳答案

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

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

这应该可以解决您的问题。

关于javascript - 如何将 Android HTML/JS 程序连接到 LAN 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544947/

相关文章:

javascript - 看似相等的物体其实并不相等

javascript - 如何使用 promise 链接 Mongoose 查询?

android - 关于 http ://stackoverflow. com/questions/2381560/how-to-group-a-3x3-grid-of-radio-buttons

html - 使这个 CSS3 动画旋转只旋转一次

javascript - JSDoc:属性名称

Chrome 上的 Javascript <span> 按钮启用/禁用

java - Android PhoneGap 与 jQuery mobile html5 嵌入 flash

android - 如何在android中滚动时隐藏页眉和页脚

html - 通过正文标签在博客文章中嵌入网络字体?

html - 我怎样才能使水平容器中的列表项均匀地填充整个容器而没有间距?