【发布时间】:2020-02-24 14:46:23
【问题描述】:
我有两个使用 STOMP 的 Spring Boot WebSocket 应用程序:
- WebSocket 服务器
- WebSocket 客户端
我能够从客户端发送 WebSocket 消息并从服务器响应它。但是,现在我想向客户端发送一个 WebSocket 消息,该消息由服务器端的事件触发。
有人能告诉我一个方法吗?
这是我现在在服务器端的内容:
WebSocketConfig.java:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic/");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/alarm");
}
}
WebSocketController.java:
@Controller
public class WebSocketController {
@MessageMapping("/alarm")
@SendTo("/topic/message")
public void processMessageFromClient(@Payload String message, Principal principal) throws Exception {
System.out.println("WEBSOCKET MESSAGE RECEIVED" + message);
}
@RequestMapping(value = "/start/{alarmName}", method = RequestMethod.POST)
public String start(@PathVariable String alarmName) throws Exception {
System.out.println("Starting " + alarmName);
/* SEND MESSAGE TO WEBSOCKET CLIENT HERE */
return "redirect:/";
}
}
【问题讨论】:
标签: spring websocket webserver stomp