Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用socket.io将客户端连接到远程node.js服务器_Javascript_Node.js_Sockets_Socket.io - Fatal编程技术网

Javascript 如何使用socket.io将客户端连接到远程node.js服务器

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');

我在主机上获得客户端。我在我的电脑上启动服务器。 当我使用localhost时,我可以连接客户机和服务器,但当我尝试将客户机连接到计算机的特定IP时,我无法连接

我是这样做的:

服务器端:

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或其他设备中是否打开?您是否有防火墙规则阻止来自外部的连接?