【发布时间】:2021-07-12 16:28:19
【问题描述】:
我正在构建一个使用从服务器推送的数据的 Web 应用程序。
每条消息都是 JSON,可能很大,数百千字节,消息每分钟发送几次,顺序无关紧要强>。
服务器应该能够保留尚未传递的消息,可能为客户端存储几兆字节几天,直到客户端无法上网。未发送消息的存储大小有限制,例如每个客户端 20mb,超过此限制时,旧的未发送消息将被删除。
服务器应该能够处理大约 1000 个同时连接。如何简单地实现?
可能的解决方案
我在想也许将消息作为文件存储在磁盘上并使用浏览器池 1 秒,以检查新消息并使用 NGinx 或类似的东西提供它? NGinx 是否有一些用于此类用例的配置/模块?
或者使用 MQTT 服务器或一些消息队列(如 Rabbit MQ)和一些浏览器适配器可能会更好?
【问题讨论】:
-
寻求建议对于 StackOverflow 来说是题外话。
-
MQTT 代理不会像您想要的那样排队消息。像 Rabbit MQ 或 AMQ 这样的东西会更适合这个用例。
标签: websocket push mqtt message-queue