在网上找到很多有关于Spring-boot2 WebFlux WebSockit的实现,都比较简单。目前实现了一个相对完整的,并实现了心跳功能(PING PONG),贴在这里,以备后用:
handle接口默认实现:
public interface MyWebSocketHandler extends WebSocketHandler {
Map<String, Timer> timer = new HashMap<>();// 定时器
/**
* 通用ws方法
*
* @param session
* WebSocketSession
* @param messageHandle
* 消息处理器
* @param closeHandle
* 连接关闭处理器
* @param endTime
* 超时时间
* @return Mono<Void>
*/
default Mono<Void> handle(
WebSocketSession session,
Function<String, String> messageHandle,
Supplier closeHandle,
int endTime) {
// 开启热源
UnicastProcessor<WebSocketMessage> hotSource = UnicastProcessor
.create();
Flux<WebSocketMessage> hotFlux = hotSource.publish()
.autoConnect();
// 向client发送数据
Mono<Void> output = session.send(