在春季启动时调用rest之后,是否可以使用WebSocket发送消息?请帮助纠正我,我有一些配置如下
//Use to handle connection and text message
Class SignalHandler extent TextWebSocketHandler{
}
@Configuration
@RequiredArgsConstructor
public class WebSocketConfig implements WebSocketConfigurer {
private final SignalHandler signalHandler;
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(signalHandler, "/signal")
.setAllowedOrigins("*");
}
@Bean
public ServletServerContainerFactoryBean createWebSocketContainer() {
ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
container.setMaxTextMessageBufferSize(8192);
container.setMaxBinaryMessageBufferSize(8192);
return container;
}
}目前,如果我通过点到http://localhost:8080/signal从Web或移动创建一个WebSocket连接来连接/离开/在SignalHandler上处理消息,那么它就可以正常工作了。
在我的例子中,我在后端有一个rest请求,在成功调用之后,我想向所有在房间里的客户发送消息。
请你告诉我,我该怎么做?
谢谢。
发布于 2022-05-08 15:53:42
我在这里建议的是使用STOMP (https://spring.io/guides/gs/messaging-stomp-websocket/),它是一个应用程序级协议,位于原始web套接字之上。它将抽象作为队列和更易于使用的主题。在回答您的问题时,我认为您可能需要重新设计您的apis,以便完全使用websocket。例如,只要有人加入,你就可以用主题来广播你的信息。
https://stackoverflow.com/questions/72161803
复制相似问题