需要:
Rabbit Doc:一个频道最多可以打开多少个 客户端和服务器同时协商连接 连接时间。客户端无法配置为允许更多 通道数超过服务器配置的最大值。强烈建议限制每个连接使用的通道数。作为指导,大多数应用程序可以在每个连接中使用个位数的通道。
这个类似于一个Mongo连接池,1个tcp连接和多个连接(mongo)/channels(rabbit)来操作。但是对于兔子来说是有限制的,而且频道会长期开放。
我该怎么做?我只能想到2个方法:
-1- 为每个用户创建一个与 rabbitmq 的 tcp 连接。它消耗大量资源,但每个用户都获得了多个接收通道和一个免费发送通道
2 - 创建类似于连接池的东西并重用连接。不知道要开多少个tcp连接,也不知道哪些频道是免费的
应用程序是聊天:
使用来自房间/私人(交换)的消息的代码。频道保持开放:
channel.consume(queue, message => {
if (message !== null) {
io.to(socketId).emit(socketEvent, message.content.toString());
channel.ack(message);
} else {
console.log('Consumer Queue - Empty message received')
}
}, {
noAck: isNoAck
})