如何使用消息队列处理特定的客户端/用户?

Posted

技术标签:

【中文标题】如何使用消息队列处理特定的客户端/用户?【英文标题】:How to address specific client/user using a message queue? 【发布时间】:2016-09-14 14:57:17 【问题描述】:

我用 node.js 和 socket.io 开发了一个拍卖平台。

但是,我想用消息队列替换 socket.io。

虽然我在实现基于套接字的拍卖平台方面没有遇到任何问题,但我不知道如何使用消息队列来做到这一点。

我不明白的主要是如何解决特定的客户/用户。

有了socket.io,我有了socket.id:

io.sockets.connected[socket.id].emit('notify', msg)

这如何与例如Redis Simple Message Queue 之类的消息队列一起工作?

如果有人能解释一下这是如何工作的,我会很高兴。

【问题讨论】:

假设客户端将是浏览器,您将如何从客户端访问该消息队列? 【参考方案1】:

Socket 通信和消息队列不相似。 Socket.io 在端点(客户端和服务器)之间提供连续的双向通信。消息队列提供了一种处理待处理项目序列的方法。

你没有提到为什么你想放弃你的套接字并用消息队列替换它们,但这不太可能奏效。

更有可能,您可以使用消息队列您的套接字连接,将一系列项目传递到系统的其他部分。您的套接字连接可能会保持原样,当服务器收到消息时,它会连同发送它的连接标识符一起放入队列中。

【讨论】:

以上是关于如何使用消息队列处理特定的客户端/用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PowerShell 从 MSMQ 消息队列中删除特定消息

如何使用特定 ServiceInsight 从死信队列重新发送消息?

Rabbitmq 简单介绍,安装和go客户端使用

如何根据消息头属性仅读取特定队列消息

如何使用 discord.js 从 discord bot 向特定用户发送消息

java如何获取rabbitmq队列中消息数量