使用 Springboot 的 Schedule websocket push
我想在前端创建一个简单的新闻提要功能,该功能将通过websocket推送通知自动更新。
所涉及的技术包括:
- 用于一般前端应用的角度
- 用于创建 websocket 通信的 SockJS
- 踩踏 webosocket 以从消息代理接收消息
- Springboot Websockets
- 踩踏消息代理(Java 相关框架)
我想在前端实现的是:
- 加载视图时创建 websocket 连接
- 使用该 websocket 创建 s 踩踏提供程序
- 让我的客户订阅它
- 捕获服务器推送的消息并更新角度视图
至于服务器端代码:
- 配置 websocket 内容并管理连接
- 让服务器每隔 X 次推送消息(通过执行程序或 ?)。
@Scheduled
我认为到目前为止,除了服务器端代码的最后一部分之外,我已经实现了一切。我遵循的示例在全双工模式下使用 websocket,当客户端发送内容时,服务器会立即响应消息队列,并且所有订阅的客户端都会更新。但我想要的是服务器本身发送一些东西,而不必等待客户端发出任何请求。Stomp
起初,我创建了一个弹簧,并添加了一个带有注释的方法。但是,我不知道如何触发它。我也尝试添加,但此注释仅适用于具有返回类型的方法(并且我返回的是NewsMessage对象)。@Controller
@SendTo("/my/subscribed/path")
@Scheduled
void
从本质上讲,我需要的是让客户端初始化websocket连接,并在服务器以设定的时间间隔开始通过它推送消息之后(或者每当触发事件时,现在都无关紧要)。此外,每个新客户端都应侦听相同的消息队列并接收相同的消息。