大家好我在最后一个版本使用NodeJS + express4 + socket.io构建一个简单的webapp,基本上我无法解决的问题是,直到我从浏览器中浏览我的webapp服务器它工作得很好,但是当我试图从同一网络访问它但在另一台PC上时,index.html服务良好,但客户端无法连接到套接字,这里是一段代码:
服务器
$(document).ready(function(){
var progressBar;
var ramPerc;
var cpu;
var socket = io.connect("http://localhost:8080");
socket.on("infos", function(infos) {
cpu = infos[5].CPU.trim();
cpuPB = '<div class="progress"> <div class="progress-bar progress-bar-success" role="progressbar" aria-valuemin="0" aria-valuemax="100" style="width:'+cpu+'%"> '+cpu+'% CPU USATA </div> </div>';
$("#uptempo").html(infos[0].Uptime);
$("#divTemp").html(infos[1].Temperature);
$("#divOS").html(infos[2].OS);
ramPerc = (((infos[3].ramUsed*100))/(infos[4].ratTot)).toFixed(2);
progressBar = "<div class='progress'> <div class='progress-bar progress-bar-success' role='progressbar' aria-valuemin='0' aria-valuemax='100' style='width:"+ ramPerc + "%'>"+ ramPerc + " % RAM usata </div> </div>";
$("#divRam").html(progressBar);
$("#divCpu").html(cpuPB);
});
});
客户端:
{{1}}
在客户端脚本当然我必须连接到http://localhost:8080/,那么为什么来自同一网络上的另一个客户端无法连接到它? 我做错了什么?我是否需要实施代理,如果是,如何?
答案 0 :(得分:1)
Localhost是仅引用127.0.0.1的内部地址,如果要从同一网络中的其他客户端访问文件,则必须找到服务器的IP(在终端上运行以下命令)
ipconfig getifaddr en0
并更改服务器IP的localhost引用,即http://xx.xx.xx.xx:8080
您可能还需要打开服务器防火墙以进行外部连接。