springboot+vue实现websocket配置过程解析
1.引入依赖
org.springframework.boot spring-boot-starter-websocket 1.3.5.RELEASE
2.配置ServerEndpointExporter
@Configuration publicclassWebSocketConfig{ @Bean publicServerEndpointExporterserverEndpointExporter(){ returnnewServerEndpointExporter(); } }
这个bean会自动注册使用了@ServerEndpoint注解声明的Websocketendpoint。
3.创建websocket的ServerEndpoint端点
@Component @ServerEndpoint("/socket") publicclassWebSocketServer{ /** *全部在线会话 */ privatestaticMaponlineSessions=newConcurrentHashMap<>(); /** *当客户端打开连接:1.添加会话对象2.更新在线人数 */ @OnOpen publicvoidonOpen(Sessionsession){ onlineSessions.put(session.getId(),session); } /** *当客户端发送消息:1.获取它的用户名和消息2.发送消息给所有人 * *PS:这里约定传递的消息为JSON字符串方便传递更多参数! */ @OnMessage publicvoidonMessage(Sessionsession,StringjsonStr){ } /** *当关闭连接:1.移除会话对象2.更新在线人数 */ @OnClose publicvoidonClose(Sessionsession){ onlineSessions.remove(session.getId()); } /** *当通信发生异常:打印错误日志 */ @OnError publicvoidonError(Sessionsession,Throwableerror){ error.printStackTrace(); } /** *公共方法:发送信息给所有人 */ publicvoidsendMessageToAll(StringjsonMsg){ onlineSessions.forEach((id,session)->{ try{ session.getBasicRemote().sendText(jsonMsg); }catch(IOExceptione){ e.printStackTrace(); } }); } }
4.前端配置连接与接收消息