我有一个非常直接的问题。我用NodeJS做了一个网页游戏,可以自己玩多个浏览器窗口并排打开成功;但是,我想知道其他本地计算机是否也可以访问并与我一起玩游戏。
我天真地尝试使用这个 url:my-ip-address:8000
并且它不起作用。
我有一个非常直接的问题。我用NodeJS做了一个网页游戏,可以自己玩多个浏览器窗口并排打开成功;但是,我想知道其他本地计算机是否也可以访问并与我一起玩游戏。
我天真地尝试使用这个 url:my-ip-address:8000
并且它不起作用。
您的 node.js 服务器通常在脚本末尾确定的端口上运行。有时 3000。但可以是任何东西。其他人访问的正确方式如你所说......
http://your.network.ip.address:port/
例如
http://192.168.0.3:3000
检查您的端口是否正确 - 以及网络上的 IP 地址 - 而不是 Internet IP。
否则,端口可能被您的路由器阻止。尝试使用 8080 或 80 来解决这个问题 - 否则重新配置您的路由器。
我有同样的问题并解决了这个问题。就我而言,Windows 防火墙(不是路由器)阻止了主机上的 V8 机器 I/O。
我的猜测是“V8 Javascript 的事件 I/O”是 node.js 与外部世界通信的 I/O 进程,我们需要先释放它,然后它才能将数据包发送到本地计算机之外。启用此程序通过 Windows 防火墙进行通信后,我可以使用任何端口号进行侦听。
如果您使用的是路由器,则:
替换server.listen(yourport, 'localhost');
为server.listen(yourport, 'your ipv4 address');
在我的机器上是
server.listen(3000, '192.168.0.3');
确保您的端口转发到您的 ipv4 地址。
在 Windows 防火墙上,勾选 Node.js:Server-side JavaScript。
我的Angular Node Server(v6.10.3) 在 WINdows 10 中设置时遇到了类似的问题。
http://localhost:4201
在 localhost 中运行良好。但 http://{ipaddress}:4201
不能在本地网络中的其他机器上工作。
为此,我更新了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
完成此修改后,能够访问我在网络中其他机器上的应用程序调用此 url
http://192.168.1.104:4201
//http://{ipaddress}:4201
没有人提到过的一个技巧是记住将应用程序托管在 LAN 可访问的地址上,0.0.0.0
而不是默认的本地主机上。与默认的本地主机地址 ( 127.0.0.1
)相比,Mac 和 Linux 上的防火墙对此地址的严格程度较低。
例如,
gatsby develop --host 0.0.0.0
yarn start --host 0.0.0.0
npm start --host 0.0.0.0
然后,您可以通过输入ifconfig
或ipconfig
在终端中访问要连接的地址。然后尝试左侧不以.255
或结尾的 IP 地址之一.0