我想在两个或多个不同的 node.js 应用服务器之间启用基于套接字的 p2p 通信。我正在使用 socket.io 来处理给定服务器和它所服务的 Web 应用程序之间的所有此类通信 - 但我正在寻找的是一种服务器到服务器通信的方式。
我最初以为它会像这样简单:
var io = require("socket.io");
var socket = io.connect("my remote endpoint");
但是,事实证明服务器端 socket.io 实现不提供“连接”方法,仅提供监听方法。
这是为什么?为什么我不能将 Node 应用程序服务器视为在其他地方运行的 socket.io 服务器的客户端?有什么方法可以实现这个功能吗?
最佳答案
好的,感谢上面评论中的@pimvdb,我有一个可行的解决方案。
基本上,npm 安装的 socket.io 库依赖于另一个模块,称为 socket.io-client。在标准的 socket.io 安装中,这将安装在 node_modules/socket.io/node_modules/socket.io-client 中
但是,也可以说“npm install socket.io-client”并将其安装为自己的一等公民库。
那么你的用法是这样的:
var client = require("socket.io-client");
var socket = client.connect("http://myendpoint.com:3000/whatever");
socket.emit("test", "foo");
一切正常。
那么,谢谢大佬!
关于javascript - 是否可以在 node.js 服务器上设置运行(服务器端)的 socket.io 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9687561/