为什么我无法从其他客户端连接到服务器?

时间:2016-03-18 08:25:03

标签: node.js express socket.io

大家好我在最后一个版本使用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/,那么为什么来自同一网络上的另一个客户端无法连接到它? 我做错了什么?我是否需要实施代理,如果是,如何?

1 个答案:

答案 0 :(得分:1)

Localhost是仅引用127.0.0.1的内部地址,如果要从同一网络中的其他客户端访问文件,则必须找到服务器的IP(在终端上运行以下命令)

ipconfig getifaddr en0

并更改服务器IP的localhost引用,即http://xx.xx.xx.xx:8080

您可能还需要打开服务器防火墙以进行外部连接。