在本地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。
- 转到Windowsbutton
- search“防火墙”
- select“允许程序通过防火墙进行通信”
- 点击更改设置
- 勾选所有“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”来确保服务器正在运行。