NodeJS Socket.io 服务器<-->服务器通信

Posted

技术标签:

【中文标题】NodeJS Socket.io 服务器<-->服务器通信【英文标题】:NodeJS Socket.io Server<-->Server communication 【发布时间】:2016-08-20 20:01:12 【问题描述】:

我正在尝试使用 socket.io 在 NodeJS(集群架构,单独的虚拟机)中建立服务器到服务器的通信。 我尝试使用这里发布的内容http://socket.io/docs/using-multiple-nodes/

var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis( host: 'localhost', port: 6379 ));

所以我假设(可能是错误的)在执行io.emit("message", "some example message") 时我可以通过以下方式监听它:

 io.on('connection', function(socket)
  console.log("io.on");
  socket.on('message', function(msg)
    console.log('message: ' + msg);
  );
);

当运行一台服务器 (node_app) 并在另一台服务器上发送事件时,我看到调试消息:

socket.io-parser encoding packet "type":2,"data":["message","some example message"],"nsp":"/" +6s
  socket.io-parser encoded "type":2,"data":["message","some example message"],"nsp":"/" as 2["message","some example message"] +0ms

我想实现每个node_app之间的通信(用于缓存失效等):

【问题讨论】:

【参考方案1】:

对于那些正在寻找类似案例的解决方案的人: 我发现这篇文章http://code.tutsplus.com/tutorials/multi-instance-nodejs-app-in-paas-using-redis-pubsub--cms-22239 基本上回答了我的问题。 通过 Redis 发布/订阅机制,我实现了我想要的。 :)

【讨论】:

以上是关于NodeJS Socket.io 服务器<-->服务器通信的主要内容,如果未能解决你的问题,请参考以下文章

Socket.IO-Client-Swift 未连接到 nodejs socket.io 服务器

在nodejs中使用socket.io和net socket

Nodejs & Socket.io 可以支持多少用户?

通过 PHP 和 cURL 访问 NodeJS / Socket.io

如何跨多个服务器 nodejs 和 socket.io 存储 socket.id

NodeJs - express 和 socket.io 同端口集成