spingboot集成webSocket
maven依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>
WebSocketConfig.java
@Component
public class WebSocketConfig {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}
WebSocket.java
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import java.util.concurrent.CopyOnWriteArraySet;@Component
@ServerEndpoint("/webSocket")
@Slf4j
public class WebSocket {private Session session;private static CopyOnWriteArraySet<WebSocket> webSocketSet = new CopyOnWriteArraySet<>();@OnOpenpublic void onOpen(Session session) {this.session = session;webSocketSet.add(this);log.info("【websocket消息】有新的连接, 总数:{}", webSocketSet.size());}@OnClosepublic void onClose() {webSocketSet.remove(this);log.info("【websocket消息】连接断开, 总数:{}", webSocketSet.size());}@OnMessagepublic void onMessage(String message) {log.info("【websocket消息】收到客户端发来的消息:{}", message);}public void sendMessage(String message) {for (WebSocket webSocket : webSocketSet) {log.info("【websocket消息】广播消息, message={}", message);try {webSocket.session.getBasicRemote().sendText(message);} catch (Exception e) {e.printStackTrace();}}}}
后端发送
webSocket.sendMessage(message);
前端:
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>websocket</title>
</head>
<body><h1>websocket</h1>
<div id="websocket"></div></body>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>var websocket = null;if ('WebSocket' in window) {websocket = new WebSocket('ws://127.0.0.1:8053/webSocket');} else {alert('该浏览器不支持websocket!');}websocket.onopen = function (event) {console.log('建立连接');$("#websocket").html("websocket建立连接成功!");}websocket.onclose = function (event) {console.log('连接关闭');}websocket.onmessage = function (event) {console.log('收到消息:' + event.data)}websocket.onerror = function () {alert('websocket通信发生错误!');}window.onbeforeunload = function () {websocket.close();}</script>
</html>
spingboot集成webSocket相关推荐
- socket接收的消息怎么更新到页面_spring boot 集成 websocket 实现消息主动
前言 http协议是无状态协议,每次请求都不知道前面发生了什么,而且只可以由浏览器端请求服务器端,而不能由服务器去主动通知浏览器端,是单向的,在很多场景就不适合,比如实时的推送,消息通知或者股票等信息 ...
- springboot websocket_SpringBoot 集成 WebSocket 实现前后端消息互传
WebSocket 协议是基于 TCP 的一种新的网络协议.它实现了浏览器与服务器全双工 (full-duplex) 通信-允许服务器主动发送信息给客户端. 为什么需要WebSocket? 大家都知道 ...
- spingboot集成jpa(一)
springboot + jpa 练习 spingboot集成jpa(一):最基本的环境搭建 spingboot集成jpa(二):使用单元测试 1. pom.xml中添加依赖 <!-- jdbc ...
- 集成 websocket 的四种方案
集成 websocket 的四种方案 1. 原生注解 pom.xml <dependency><groupId>org.springframework.boot</gro ...
- ionic 集成websocket
ionic 集成websocket 创建service文件 ionic g service providers/webSocket service文件代码为 import { Injectable } ...
- 若依集成 WebSocket
若依集成 WebSocket 引入依赖 创建 WebSocket 配置类,开启 WebSocket 支持 添加 WebSocketServer 类,创建 webSocket 端点 创建 control ...
- java websocket注解_【websocket】spring boot 集成 websocket 的四种方式
集成 websocket 的四种方案 1. 原生注解 pom.xml org.springframework.boot spring-boot-starter-websocket WebSocketC ...
- spring boot 集成 websocket 实现消息主动推送
前言 http协议是无状态协议,每次请求都不知道前面发生了什么,而且只可以由浏览器端请求服务器端,而不能由服务器去主动通知浏览器端,是单向的,在很多场景就不适合,比如实时的推送,消息通知或者股票等信息 ...
- SpringBoot集成WebSocket
一.什么是WebSocket WebSocket是一种网络传输协议,位于OSI模型的应用层.可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通讯. 客户端和服务端只需完成一次 ...
最新文章
- git同一项目使用多个远程仓库
- Linux下百度网盘一直进入不了登陆界面的解决方案
- margin-top的百分比是相对父元素的哪个值
- busybox arm-linux-gcc 4.4.4库的路径,BUSYBOX编译错误及解决方法总结
- django为什么需要子进程,如何关闭子进程,linux状态
- OPENCV-3 学习笔记
- 【linux】linux系统中常见配置文件及目录说明
- django框架 day06
- python方法调用方法_Python之方法调用
- 用c#写的smtp邮件发送类
- 重启防火墙的命令linux7,Linux CentOS7 防火墙 firewall 安装 重启 管理端口 等命令
- ECMAScript历史
- 大数据和云计算技术周报(第102期)
- nodejs学习笔记--Unexpected end of JSON input while parsing near ‘...“解决方法
- UDS诊断看这篇就够了,吐血整理
- 荣耀7x Android8,荣耀7X升级安卓8.0
- 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
- Linux系统中文件系统管理
- Flask学习笔记:错误处理
- 语音播报功能的几种实现办法(包含TTS)