【发布时间】:2019-06-12 09:15:21
【问题描述】:
我在 JDK 11 上使用带有 Webflux 的 Spring boot 2。我编写了以下配置类:
@Configuration
public class WebSocketConfiguration {
@Autowired
@Bean
public HandlerMapping webSocketMapping(final MyWebSocketHandler server) {
final Map<String, WebSocketHandler> map = new HashMap<>();
map.put("/echo", server);
final SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setOrder(Ordered.HIGHEST_PRECEDENCE);
mapping.setUrlMap(map);
return mapping;
}
@Bean
public WebSocketHandlerAdapter handlerAdapter() {
return new WebSocketHandlerAdapter();
}
}
还有下面的WebSocketHandler方法:
@Override
public Mono<Void> handle(WebSocketSession webSocketSession) {
return webSocketSession.send(webSocketSession.receive().
map(msg -> webSocketSession
.textMessage("response:jack ->" + msg.getPayloadAsText())));
}
现在,我可以接收我发送的任何内容,例如:
客户端发送:4545
客户端接收 :response:jack ->4545
我想知道当客户端不给我发消息的时候,我怎么给客户端推送消息,我需要随时推送消息!
我如何随时发送自定义消息而不是使用相同的输入消息进行响应?
【问题讨论】:
标签: spring-boot websocket spring-webflux