注意:对于 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/