繁体   English   中英

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

[英]How connect a client to a distant node.js server with socket.io

我在主机上获取客户端。 我在我的电脑上启动了服务器。 当我使用本地主机时,我可以连接客户端和服务器,但是当我尝试将客户端连接到我计算机的特定 IP 时却不能。

这就是我继续的方式:

服务器端 :

const server = http.createServer();
server.listen(port, 'localhost');
const io = socket(server);

客户端 :

const socket = io.connect('http://localhost:3000');

(这对我有帮助: 使用 Socket.io 连接到特定的服务器 Ip

当我用 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

我不明白如何将客户端从任何计算机连接到我计算机上启动的服务器?

在以下行中,您要让服务器在localhost上侦听:

server.listen(port, 'localhost');

如果要从未指定的地址(IPv4 为 0.0.0.0)侦听或设置所需的 IP,请删除locahost

server.listen(port);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM