websocket 在于建立全双工的通信方式
先从客户端说起:
var socket = new WebSocket(url); 建立一个WebSocket连接
在创建WebSocket之后。可以通过onopen,onmessage,onclose及onerror四个事件实现对socket进行响应
比较重要的就是第三个:当客户端收到服务端发来的消息时,触发onmessage事件
给服务端发消息:socket.send(JSON.stringify(message));
在服务端Spring方面:
首先用注解声明一个关于WebSocket的配置类:
@Configuration //声明当前类是一个配置类,相当于一个Spring的XML配置文件,与@Bean配合使用。 @EnableWebMvc @EnableWebSocket public class WebSocketConfig extends WebMvcConfigurerAdapter implements WebSocketConfigurer{ @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(systemWebSocketHandler(),"webSocketServer.do"); } …… }
里面这个方法大概就是注册处理器,即将addHandler的第二个参数作为请求,交给第一个参数处理,这时候目光转移到处理器Handler去
Handler是一个实现WebSocketHandler接口的类,里面有这么一些方法:
1、afterConnectionEstablished:连接成功建立后调用
2、handleMessage:在新WebSocket消息到达时调用
3、handleTransportError:抛出异常时调用
4、afterConnectionClosed:在任何一方关闭WebSocket连接或发生传输错误后调用
5、supportsPartialMessages:……