Javascript 如何使用socket.io将客户端连接到远程node.js服务器
我在主机上获得客户端。我在我的电脑上启动服务器。 当我使用localhost时,我可以连接客户机和服务器,但当我尝试将客户机连接到计算机的特定IP时,我无法连接 我是这样做的: 服务器端:Javascript 如何使用socket.io将客户端连接到远程node.js服务器,javascript,node.js,sockets,socket.io,Javascript,Node.js,Sockets,Socket.io,我在主机上获得客户端。我在我的电脑上启动服务器。 当我使用localhost时,我可以连接客户机和服务器,但当我尝试将客户机连接到计算机的特定IP时,我无法连接 我是这样做的: 服务器端: const server = http.createServer(); server.listen(port, 'localhost'); const io = socket(server); 客户端: const socket = io.connect('http://localhost:3000');
const server = http.createServer();
server.listen(port, 'localhost');
const io = socket(server);
客户端:
const socket = io.connect('http://localhost:3000');
(这对我有帮助:)
当我用ip替换localhost时,我的服务器端出现了以下问题:
events.js:200
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL: address not available 123.123.123.123:3000
at Server.setupListenHandle [as _listen2] (net.js:1289:21)
at listenInCluster (net.js:1354:12)
at doListen (net.js:1493:7)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
Emitted 'error' event on Server instance at:
at emitErrorNT (net.js:1333:8)
at processTicksAndRejections (internal/process/task_queues.js:81:21) {
code: 'EADDRNOTAVAIL',
errno: 'EADDRNOTAVAIL',
syscall: 'listen',
address: '123.123.123.123',
port: 3000
}
为什么说地址不可用?(当然不是真的123.123.132.123
)
我不明白如何将客户端从任何计算机连接到在我的计算机上启动的服务器?在下面的一行中,您对服务器说要在
本地主机上侦听:
server.listen(port, 'localhost');
如果要从未指定的地址(IPv4为0.0.0.0)侦听,请删除locahost
,或设置所需的IP地址
server.listen(port);
谢谢你的回复,但是从远处的计算机客户端如何连接到我的服务器呢?我尝试这个const socket=io.connect('http://123.123.123.123:3000');
但这不起作用如果您取消了仅从本地主机连接的限制,那么您必须检查3000端口是否对外开放:该端口在路由器、LAN或其他设备中是否打开?您是否有防火墙规则阻止来自外部的连接?