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

网友投稿 470 2023-06-15

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

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

1.引入依赖

org.springframework.boot

spring-boot-starter-websocket

1.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.前端配置连接与接收消息

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解基于Mybatis
下一篇:Spring Boot如何使用AOP实例解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~