如何将两个node.js服务器与websockets连接?

这是我的问题:

我有服务器A,运行node.js并使用socket.io与客户端(Web浏览器)进行通信。这一切都很好,花花公子。

但是,现在我有了服务器B,也需要通过websocket连接到服务器A,所以我遇到了麻烦。我发现的所有node.js

websocket客户端都无法与服务器A上的socket.io一起使用。

所以,这就是我正在努力的情况:

.--------.      .----------.      .----------.

| CLIENT | <--> | SERVER A | <--> | SERVER B |

'--------' '----------' '----------'

客户端-服务器连接是通过socket.io完成的

现在,服务器B(运行node.js)应通过websocket连接到服务器A(以通过端口80)。但…

甚至socket.io-client模块中的示例代码也不起作用…:/

// Connect to server

var socket = new io.Socket('localhost', {port: 8080});

socket.connect();

// Add a connect listener

socket.on('connect', function(socket) {

console.log('Connected.');

});

代码通过时没有任何错误,执行在几秒钟后结束。

更新:代码示例

服务器(工作正常)如下所示:

// Load requirements

var http = require('http'),

io = require('socket.io');

// Create server & socket

var server = http.createServer(function(req, res){

// Send HTML headers and message

res.writeHead(404, {'Content-Type': 'text/html'});

res.end('<h1>Aw, snap! 404</h1>');

});

server.listen(8080);

io = io.listen(server);

// Add a connect listener

io.sockets.on('connection', function(socket) {

console.log('Client connected.');

// Disconnect listener

socket.on('disconnect', function() {

console.log('Client disconnected.');

});

});

客户看起来像这样

console.log('1');

// Connect to server

var io = require('socket.io-client')

var socket = new io.Socket('localhost', {port: 8080});

socket.connect();

console.log('2');

// Add a connect listener

socket.on('connect', function(socket) {

console.log('Connected!');

});

console.log('3');

1、2和3可以正常打印,没有错误,几秒钟后该过程就退出了

另外,即使我在“ everything”上设置了socket.io日志记录,服务器A也不向日志输出任何内容。

回答:

事实证明,由于某些原因,我使用了旧示例,即使我对它们进行了三遍检查。好吧

同样,事实证明,socket.io-client在最新的节点(6.xx)上已损坏。设法从github找到了一个更新,替换了文件,是的,一切正常!

:不幸的是,我没有保存到工作示例的任何链接,但是在快速浏览了代码之后,似乎唯一的更改是对客户端代码的更改,现在看起来像这样:

console.log('1');

// Connect to server

var io = require('socket.io-client')

var socket = io.connect('localhost:8080', {reconnect: true});

console.log('2');

// Add a connect listener

socket.on('connect', function(socket) {

console.log('Connected!');

});

console.log('3');

以上是 如何将两个node.js服务器与websockets连接? 的全部内容, 来源链接: utcz.com/qa/401376.html

回到顶部