Myk*_*Myk 24 javascript sockets p2p node.js socket.io
我想在两个或多个不同的node.js应用服务器之间启用基于套接字的p2p通信.我正在使用socket.io来处理给定服务器和它所服务的Web应用程序之间的所有这种通信 - 但我正在寻找的是一种通信服务器到服务器的方式.
我最初认为它会像这样简单:
var io = require("socket.io");
var socket = io.connect("my remote endpoint");
Run Code Online (Sandbox Code Playgroud)
但是,事实证明服务器端socket.io实现不提供"连接"方法,只提供listen方法.
为什么是这样?为什么我不能将节点应用程序服务器视为在其他地方运行的socket.io服务器的客户端?有什么办法可以实现这个功能吗?
Myk*_*Myk 56
好的,所以感谢上面评论中的@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");
Run Code Online (Sandbox Code Playgroud)
一切正常.
所以,谢谢你!
只是为了澄清,这是一个监听器和发射事件的可能性的例子(并且没有再安装已经安装的模块)
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");
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14419 次 |
最近记录: |