javascript - 是否可以在 node.js 服务器上设置运行(服务器端)的 socket.io 客户端?

标签 javascript sockets node.js socket.io p2p

我想在两个或多个不同的 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/

相关文章:

javascript - mongoose .find() 方法返回具有不需要属性的对象

node.js - 如何在 Node 中逐行读取标准输入

javascript - 使用 JQuery 和 MVC4 上传多个文件

javascript - 如何获取数组中的对象子集并将数组作为参数传递

javascript - 获取字典的键值

javascript - 为什么第一个网络调用比后续调用花费更多时间?

sockets - 返回的 UDP 数据包缺少端口且无法到达

Java - 创建网络浏览器

javascript - CSV 中的 JSON 到 CSV

javascript - Socket.io 客户端由于 ping 超时/传输关闭而断开连接