在本地networking上的其他人如何在我的机器上运行时访问我的NodeJS应用程序?

我有一个非常简单的问题。 我用NodeJS做了一个网页游戏,并且可以通过多个浏览器窗口并排打开, 但是,我想知道其他本地机器是否可以访问和玩我的游戏。

我天真地尝试使用此url: my-ip-address:8000 ,它不会工作。

您的node.js服务器通常在脚本末尾确定的端口上运行。 有时3000.但可以是任何东西。 其他人访问正确的方法就像你说的…

http://your.network.ip.address:port / eg http://192.168.0.3:3000

检查你有正确的端口 – 和networking上的IP地址 – 不是互联网IP。

否则,也许端口被您的路由器阻止。 尝试使用8080或80解决这个问题 – 否则重新configuration您的路由器。

我有同样的问题,并解决了这个问题。 在我的情况下,Windows防火墙(而不是路由器)阻塞了主机上的V8机器I / O。

  1. 转到Windowsbutton
  2. search“防火墙”
  3. select“允许程序通过防火墙进行通信”
  4. 点击更改设置
  5. 勾选所有“V8 Javascript的Evented I / O”或“Node.js:服务器端Javascript”

我的猜测是,“V8 Javascript的Evented I / O”是node.js与外界通信的I / O过程,我们需要释放它才能将数据包发送到本地计算机之外。 启用此程序通过Windows防火墙进行通信后,我可以使用任何端口号来侦听。

该端口可能被本地防火墙或路由器阻止。 很难说没有细节。

但有一个简单的解决scheme,您不必混淆防火墙规则,将节点作为特权进程运行以在端口80上进行服务等。

检查Localtunnel 。 它是一个伟大的Ruby脚本/服务,它允许您在几秒钟内在互联网上提供任何本地端口。 这对于一个生产环境来说肯定没什么用处,但是要和同事们一起试玩一个游戏,它应该工作得很好!

面对类似的问题,我在我的Angular Node Server(v6.10.3),它设置在WIndows 10中http://localhost:4201在localhost中工作正常。 但是http://{ipaddress}:4201不能在本地networking中的其他机器上工作。

为此,我更新了ng serve

 //Older ng serve in windows command Prompt ng serve --host localhost --port 4201 //Updated ng serve //ng serve --host {ipaddress} --port {portno} ng serve --host 192.168.1.104 --port 4201 

在做这个修改能够访问我的应用程序在networkingbt调用此url的其他机器

 http://192.168.1.104:4201 //http://{ipaddress}:4201 

不要忘记在Index.html中更改以下代码:

  <script src="http://192.168.1.4:8000/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-1.6.2.min.js"></script> var socket = io.connect('http://192.168.1.4:8000'); 

祝你好运!

 var http = require('http'); http.createServer(function (req, res) { }).listen(80, '127.0.0.1'); console.log('Server running at http://127.0.0.1:80/'); 

默认情况下,节点将在运行它的主机所公开的每个IP地址上运行。 你不需要做任何特别的事情。 您已经知道服务器在特定的端口上运行。 您可以通过在该机器的浏览器上使用该IP地址来certificate这一点:

 http://my-ip-address:port 

如果这不起作用,你可能会有你的IP地址错误。

我有这个问题。 解决方法是通过服务器防火墙允许node.js。

一个显而易见的问题是你ping的端口可能被路由器阻塞。 起初我输了3000,2779,并以8080成功。

希望这可以帮助

通过在命令行窗口中使用“npm start”或“nodemon”来确保服务器正在运行。