千家信息网

SpringBoot如何使用WebSocket

发表于:2024-10-08 作者:千家信息网编辑
千家信息网最后更新 2024年10月08日,这篇文章主要介绍了SpringBoot如何使用WebSocket,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。WebSocket 是
千家信息网最后更新 2024年10月08日SpringBoot如何使用WebSocket

这篇文章主要介绍了SpringBoot如何使用WebSocket,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

java怎么写

配置Bean

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

java链接

/** * token为前端连接时的标识,后端根据此token维护用户与webSocket的绑定 */@Component@ServerEndpoint("/webSocket/{token}")public class WebSocket { private Session session; private static ConcurrentHashMap webSocketMap = new ConcurrentHashMap<>(); @OnOpen public void onOpen(@PathParam(value = "token") String token, Session session) { this.session = session; webSocketMap.put(token, this); System.out.println("new connect:" + token + ". total :" + webSocketMap.size()); } @OnClose public void onClose(@PathParam(value = "token") String token) { webSocketMap.remove(token); System.out.println("disconnect:" + token + ", total:" + webSocketMap.size()); } @OnMessage public void onMessage(String message) { System.out.println("get message: " + message); } public void sendMessage(String message) { // 根据业务逻辑,找到token指向的webSocket WebSocket webSocket = webSocketMap.get(String.valueOf(message.charAt(0))); // 找不到返回 if (webSocket == null) { return; } try { webSocket.session.getBasicRemote().sendText(message); } catch (IOException e) { e.printStackTrace(); } }}

前端怎么写

/** * WebSocket客户端 * * 使用说明: * 1、WebSocket客户端通过回调函数来接收服务端消息。例如:webSocket.onmessage * 2、WebSocket客户端通过send方法来发送消息给服务端。例如:webSocket.send(); */ function getWebSocket() { /** * WebSocket客户端 PS:URL开头表示WebSocket协议 中间是域名端口 结尾是服务端映射地址 */ var webSocket = new WebSocket(/*[[${webSocketUrl}]]*/ 'ws://localhost:8080/webSocket/2'); /** * 当服务端打开连接 */ webSocket.onopen = function (event) { console.log('WebSocket打开连接'); }; /** * 当服务端发来消息:1.广播消息 2.更新在线人数 */ webSocket.onmessage = function (event) { console.log('WebSocket收到消息:%c' + event.data, 'color:green'); }; /** * 关闭连接 */ webSocket.onclose = function (event) { console.log('WebSocket关闭连接'); }; /** * 通信失败 */ webSocket.onerror = function (event) { console.log('WebSocket发生异常'); }; return webSocket; }

感谢你能够认真阅读完这篇文章,希望小编分享的"SpringBoot如何使用WebSocket"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0