springboot+vue实现websocket配置过程解析

这篇文章主要介绍了springboot+vue实现websocket配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1.引入依赖

org.springframework.bootspring-boot-starter-websocket1.3.5.RELEASE

2.配置ServerEndpointExporter

@Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } }

这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。

3.创建websocket的ServerEndpoint端点

@Component @ServerEndpoint("/socket") public class WebSocketServer { /** * 全部在线会话 */ private static Map onlinesessions = new ConcurrentHashMap(); /** * 当客户端打开连接:1.添加会话对象 2.更新在线人数 */ @Onopen public void onopen(Session session) { onlinesessions.put(session.getId(), session); } /** * 当客户端发送消息:1.获取它的用户名和消息 2.发送消息给所有人 * * PS: 这里约定传递的消息为JSON字符串 方便传递更多参数! */ @OnMessage public void onMessage(Session session, String jsonStr) { } /** * 当关闭连接:1.移除会话对象 2.更新在线人数 */ @OnClose public void onClose(Session session) { onlinesessions.remove(session.getId()); } /** * 当通信发生异常:打印错误日志 */ @OnError public void onError(Session session, Throwable error) { error.printstacktrace(); } /** * 公共方法:发送信息给所有人 */ public void sendMessagetoAll(String jsonMsg) { onlinesessions.forEach((id, session) -> { try { session.getBasicRemote().sendText(jsonMsg); } catch (IOException e) { e.printstacktrace(); } }); } }

4.前端配置连接与接收消息

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...