如何使用消息队列处理特定的客户端/用户?
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 从死信队列重新发送消息?