Socket.io Redis适配器和Redis发射器有什么区别
What is the difference between Socket.io Redis adapter and Redis emitter
我正在阅读此 article from the Socket.io 文档
我发现以下两个包 @socket.io/redis-adapter
和 @socket.io/redis-emitter
用于向其他服务器上的客户端发送数据。
这两个包有什么不同吗?如果是的话有什么区别?什么时候使用一个而不是另一个?
来自 Damien 的简短回答 — Socket.io
的核心提交者
The adapter is a component inside the Socket.IO server, while the emitter can be used in another process/service.
并且documentation里面有两张图解释了每个包的职责
长答案
它们非常相似,但有以下两个区别:
@socket.io/redis-adapter
- 必须与
socket.io
服务器链接,并且您必须为其提供 publish 和 subscribe redis 客户端。像下面这样:
io.adapter(createAdapter(pubClient, subClient))
- 负责 send/receive
socket.io
命令 to/from 其他服务器。
@socket.io/redis-emitter
- 无法与
socket.io
服务器链接,并且您必须为其提供 publish redis 客户端。像下面这样:
const emitter = new Emitter(pubClient);
- 仅负责向其他服务器发送
socket.io
命令(具有 @socket.io/redis-adapter
具有相同 redis 数据库连接和通道密钥配置的适配器)
注意:这些差异适用于所有 socket.io 适配器和发射器(例如 @socket.io/mongo-adapter
和 @socket.io/mongo-emitter
)
我正在阅读此 article from the Socket.io 文档
我发现以下两个包 @socket.io/redis-adapter
和 @socket.io/redis-emitter
用于向其他服务器上的客户端发送数据。
这两个包有什么不同吗?如果是的话有什么区别?什么时候使用一个而不是另一个?
来自 Damien 的简短回答 — Socket.io
的核心提交者The adapter is a component inside the Socket.IO server, while the emitter can be used in another process/service.
并且documentation里面有两张图解释了每个包的职责
长答案
它们非常相似,但有以下两个区别:
@socket.io/redis-adapter
- 必须与
socket.io
服务器链接,并且您必须为其提供 publish 和 subscribe redis 客户端。像下面这样:
io.adapter(createAdapter(pubClient, subClient))
- 负责 send/receive
socket.io
命令 to/from 其他服务器。
@socket.io/redis-emitter
- 无法与
socket.io
服务器链接,并且您必须为其提供 publish redis 客户端。像下面这样:
const emitter = new Emitter(pubClient);
- 仅负责向其他服务器发送
socket.io
命令(具有@socket.io/redis-adapter
具有相同 redis 数据库连接和通道密钥配置的适配器)
注意:这些差异适用于所有 socket.io 适配器和发射器(例如 @socket.io/mongo-adapter
和 @socket.io/mongo-emitter
)