2

我开始使用 RabbitMQ,使用 MQTT 协议。我希望我的网络应用程序的用户能够接收实时通知。我不确定如何实现这一点。我想通过告诉浏览器有可供下载的数据会发出“痒痒”。另一种选择可能是通过 sockJS 套接字发送信息。

  1. 浏览器 Js 客户端是否应该能够直接连接到队列?或者这是一个安全问题?

如果我使用用户 ID 的哈希值作为该用户消费的队列名称,那么人们可以创建自己的 MQTT 客户端并开始尝试连接到随机队列并查看他们是否遇到了什么问题。您可能会想,WOW BIG DEAL... 一个未经授权的用户知道另一个(完全未知的)用户有一个(完全未知的)通知。

  1. 我认为为了完整性,节点有某种 nodeJs 层或介于两者之间的东西来进行身份验证?我四处搜索,但大多数 MQTT 教程本质上都是非常基础的,并没有深入探讨安全措施或其实施的细节或理论。

  2. 如何安全地唯一命名队列并将该队列名称传递给浏览器?

该博客展示了nodeJs的使用,但我不确定原因,也没有解释或展示当nodeJs基本上成为生产者/消息代理时如何以套接字的形式分离不同的订阅队列。我猜想将队列名称映射到套接字连接并以这种方式触发信息,但随后又不确定这一层的原因。 http://vanbosse.be/blog/detail/pub-sub-with-rabbitmq-and-websocket

4

0 回答 0