Mongodb 项目反应器和服务器端事件

Mongodb 项目反应器和服务器端事件,mongodb,spring-boot,project-reactor,reactive,Mongodb,Spring Boot,Project Reactor,Reactive,我正在寻找一种解决方案,一旦在服务器端完成修改,后端就会将事件发布到前端。为了更简洁,我想在修改一个项目后立即发出一个新的对象列表 我尝试在SpringBoot项目上实现,该项目使用反应式Web MongoDB,它有一个@Tailable游标,一旦修改了capped集合,它就会发布一个事件。问题是,capped集合有一些限制,并且与我想要做的并不真正兼容。问题是,如果新元素的大小不同,我就无法更新现有元素(据我所知,这是非法的,因为您无法进行回滚) 老实说,我甚至不知道这是否可行,但也许我很幸运

我正在寻找一种解决方案,一旦在服务器端完成修改,后端就会将事件发布到前端。为了更简洁,我想在修改一个项目后立即发出一个新的对象列表

我尝试在SpringBoot项目上实现,该项目使用反应式Web MongoDB,它有一个@Tailable游标,一旦修改了capped集合,它就会发布一个事件。问题是,capped集合有一些限制,并且与我想要做的并不真正兼容。问题是,如果新元素的大小不同,我就无法更新现有元素(据我所知,这是非法的,因为您无法进行回滚)

老实说,我甚至不知道这是否可行,但也许我很幸运,我会在这里遇到一位火箭科学家,这将证明不是这样

提前谢谢

***编辑:
很抱歉问了这么模糊的问题。是的,我更关注的是如何使用Spring反应式框架。

当我有类似的需求时——通知前端在后端完成了一些事情——我使用了一个消息队列

我已经从后端向队列发布了一条消息,前端使用了该消息


但我不确定这是否是您想要的。

如果您将webflux与spring reactor一起使用,我认为您可以简单地拥有一个内容类型为“文本/事件流”或“应用程序/流+json”的客户端请求,并且您应该拥有能够生成这些内容类型的API。这将为您提供SSE模型,而无需付出太多努力

@GetMapping(value = "/stream", produces = {MediaType.TEXT_EVENT_STREAM_VALUE, MediaType.APPLICATION_STREAM_JSON_VALUE, MediaType.APPLICATION_JSON_UTF8_VALUE})
public Flux<Message> get(HttpServletRequest request) {
@GetMapping(value=“/stream”,products={MediaType.TEXT\u EVENT\u stream\u value,MediaType.APPLICATION\u stream\u JSON\u value,MediaType.APPLICATION\u JSON\u UTF8\u value})
公共流量获取(HttpServletRequest请求){

只是一个想法-也许您需要在此处使用web套接字技术:

前端(我假设它是在浏览器中运行的客户端应用程序,用react、angular或类似的语言编写)可以与后端服务器建立web套接字通信


后端处理完成后,可以将消息从后端发送到前端。

请尝试组织并重新表述问题。您要查找的具体内容是什么?问题在于检测事件需要发布的时刻?或者是关于如何从后端发布到前端的问题?