【问题标题】:node js, socket.io, redis and pm2节点 js、socket.io、redis 和 pm2
【发布时间】:2018-08-18 15:48:51
【问题描述】:
我们的系统包含一个 NodeJs Restful API 服务器。该服务器还用作套接字 IO 服务器。很多设备会通过socket io连接到服务器,用户可以通过调用restful API来控制设备,服务器会通过socket IO向设备传递命令。我们使用 pm2 来集群 API 服务器。您能否帮助如何使用 Redis.io 服务器支持将消息从集群发送到特定的套接字实例?
【问题讨论】:
标签:
node.js
rest
redis
socket.io
pm2
【解决方案1】:
如果您已经设置了 redis 服务器,您只需设置 socket.io-redis 适配器:https://www.npmjs.com/package/socket.io-redis
从那里,最好让传入的 socket.io 连接加入设备特定的房间。这通常通过来自connection 事件的socket.join() 来实现。
从那里,您可以调用 .to().emit() 方法将数据发送到设备。使用房间允许您忽略套接字并将消息传输到设备,无论它们连接到哪个实例