Spring中的SSE(服务器端事件)——存储SseEmitters
Posted
技术标签:
【中文标题】Spring中的SSE(服务器端事件)——存储SseEmitters【英文标题】:SSE (Server-side events) in Spring - storing SseEmitters 【发布时间】:2020-12-19 18:09:19 【问题描述】:我正在 Web 应用程序中实现 SSE 事件。我的用例需要有选择地向部分或所有订阅的客户端发送事件的可能性。我已经在服务器端/ Spring 和客户端/ Angular 上都有一个工作草案 - 基于此SO。
现在,由于 SSE 需要维护连接,我的应用程序变为有状态的,我需要以某种方式管理该状态。我想到的唯一想法是将其作为 Map
通常服务在 Spring 中是无状态的,但我想不出任何替代方案或上述方法失败的原因。有人可以提出更好的解决方案吗?
【问题讨论】:
【参考方案1】:我想说尽量避免状态!。
在您的句子since SSE requires the connection to be maintained, my application becomes stateful
中,仅仅因为您保持 TCP 连接打开并不意味着您的应用程序应该是有状态的。
恕我直言,您可以根据需要创建数据流,并且您感兴趣的客户可以订阅它们,这样您就可以像队列管理器一样处理您的事件。
我在这里 https://github.com/htenjo/vqueue 使用以下架构创建了类似的东西:
也许能帮上忙。
【讨论】:
以上是关于Spring中的SSE(服务器端事件)——存储SseEmitters的主要内容,如果未能解决你的问题,请参考以下文章