通过LAN IP地址连接websocket服务器

php*_*_qq 10 php lan websocket

我已经建立了一个以学习为目的的websockets聊天.一切正常,但我无法解决这个问题.

当我127.0.0.1在客户端提供连接的地址时,我可以从托管它的计算机访问服务器,但是当我将地址更改为托管计算机的实际LAN地址时,我甚至无法连接服务器主持人本身.看到:

Server = new FancyWebSocket('ws://127.0.0.1:9300'); 似乎工作但只有托管服务器的计算机可以连接(出于显而易见的原因)

Server = new FancyWebSocket('ws://192.168.1.3:9300');没有电脑可以连接.我确认192.168.1.3是托管计算机的LAN地址.

我需要在哪里放置一个地址,以便本地网络中的其他计算机可以连接?

php*_*_qq 7

我解决了这个问题.由于它是两个答案的组合,我认为唯一公平的事情是添加另一个答案和解释.

正如@Mehran建议的那样,我已将服务器地址设置为127.0.0.1而不是网络地址.更改后,192.186.1.3我能够从服务器本身连接,但其他机器无法连接.然后,我从@ vtortola的答案中提供的指南中执行了步骤,将新的入站规则添加到服务器的防火墙中,以便允许使用该端口.

所以最后一切都有效,非常感谢你帮助我.+代表大家!


Meh*_*ran 5

我很确定这是由于您的 WebSocket 服务器的配置。它必须侦听 localhost( 127.0.0.1) 以接受传入的连接,在这种情况下它不会响应那些瞄准的连接192.168.1.3

由于您没有提到您使用的是哪个服务器,我不能具体说明,但通常有两种方法可以实例化侦听套接字,将其绑定到特定 IP 地址或*绑定系统具有的任何地址。如果您打算应答来自 LAN 内任何计算机的服务器连接,则需要配置后者。