是否可以在node.js服务器上设置一个运行(服务器端)的socket.io客户端
Is it possible to set up a socket.io client running (server-side) on a node.js server?
我想在两个或多个不同的node.js应用程序服务器之间启用基于套接字的p2p通信。我正在使用socket.io来处理给定服务器与其服务的web应用程序之间的所有此类通信,但我正在寻找一种在服务器之间进行通信的方式。
我最初以为它会像这样简单:
var io = require("socket.io");
var socket = io.connect("my remote endpoint");
然而,事实证明,服务器端socket.io实现并没有提供"连接"方法,只提供了一个侦听方法。
为什么会这样?为什么我不能将节点应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么方法可以实现这个功能吗?
好吧,多亏了上面评论中的@pimvdb,我有了一个可行的解决方案。
基本上,npm安装的socket.io库依赖于另一个名为socket.io-client的模块。在标准socket.io安装中,它将安装在node_modules/socket.io/node_modules/socket.io-client 中
然而,也可以说"npm installsocket.io-client",并将其作为自己的一流公民库进行安装。
然后你的用法看起来是这样的:
var client = require("socket.io-client");
var socket = client.connect("http://myendpoint.com:3000/whatever");
socket.emit("test", "foo");
一切正常。
所以,谢谢伙计!
为了澄清起见,这是一个具有侦听器和发出事件的可能性的示例(并且无需再次安装已安装的模块)
var io = require('socket.io/node_modules/socket.io-client');
client = io.connect('http://'+CONFIG.host+':'+CONFIG.port);
client.on('connect',function() {
client.emit("test","foo");
});
在全速使用socket.io进行服务器到服务器的通信之前。。。。。socket.io被设计为浏览器到服务器的通信基础设施。我还不能确定它是P2P服务器的最佳解决方案。另外,如果你做的是服务器对服务器,为什么不只做Websockets呢?节点有各种websocket模块,例如。https://github.com/einaros/ws
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 运行一个特定<脚本>(Dreamweaver)
- 在触发x-editable之前运行一个函数
- 如何运行一个又一个脚本
- 运行一个JavaScript黄瓜水豚它停止了
- 在每个函数之后运行一个函数
- 如何运行一个调用某个函数的函数首先完成它,然后再调用下一个函数.正在创建回调函数
- Node.js:如何在服务器初始化时运行一个特殊的函数
- 如何运行一个 JavaScript 函数 X 秒
- 如何在javascript函数中运行一个接一个的gullow函数
- 从gullow任务运行一个npm脚本
- Nodejs:在节点服务器启动时运行一个js文件
- Rails——在每个数据库条目中运行一个javascript
- JQuery启动文件下载,然后运行一个函数
- 如何在返回另一个函数中的值后运行一个函数
- 运行一个js函数onchange()
- VueJS组件来运行一个MelonJS游戏
- jQuery-在窗口滚动上运行一个函数,没有任何延迟
- 如何使[Enter]只运行一个处理程序
- 在three.js程序中运行一个webgl函数