Cad*_*ery 3 sockets amazon-ec2 redis node.js
使用运行我的节点应用程序的 2 个 Amazon EC2 服务器设置所有内容并正常工作。目前坐在应用程序负载均衡器后面。
我正在使用这样的代码发出套接字消息
const ioredis = require('socket.io-redis');
io = require('socket.io')(server);
io.adapter(ioredis({
host: 'localhost',
port: 6379
}));
io.to('roomName').emit('message', data);
Run Code Online (Sandbox Code Playgroud)
但是,当使用 socket.io 发出消息时,该消息仅从原始节点服务器广播。
服务器 1 发出 socket.io 消息 -> 连接到服务器 1 的任何人都会听到该消息,但连接到服务器 2 的任何人都不会。
服务器 2 发出 socket.io 消息 -> 连接到服务器 2 的任何人都会听到该消息,但连接到服务器 1 的任何人都不会。
我需要帮助的是如何从服务器 1 发出 socket.io 消息并将其中继到所有其他服务器,可能是通过在单独的服务器上使用单个 redis 实例?
或者
有另一个服务器作为套接字发射器,服务器 1 和服务器 2 从中发送和接收套接字消息。
不太确定哪个选项是最好和正确的方法,任何帮助将不胜感激。
我设法通过创建第三台服务器、在其上安装 Redis 并将所有其他服务器设置为使用该单个 Redis 实例来解决该问题。
现在,无论原始服务器如何,套接字消息都会广播到所有服务器。
归档时间: |
|
查看次数: |
893 次 |
最近记录: |