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相关推荐

  1. socket接收的消息怎么更新到页面_spring boot 集成 websocket 实现消息主动

    前言 http协议是无状态协议,每次请求都不知道前面发生了什么,而且只可以由浏览器端请求服务器端,而不能由服务器去主动通知浏览器端,是单向的,在很多场景就不适合,比如实时的推送,消息通知或者股票等信息 ...

  2. springboot websocket_SpringBoot 集成 WebSocket 实现前后端消息互传

    WebSocket 协议是基于 TCP 的一种新的网络协议.它实现了浏览器与服务器全双工 (full-duplex) 通信-允许服务器主动发送信息给客户端. 为什么需要WebSocket? 大家都知道 ...

  3. spingboot集成jpa(一)

    springboot + jpa 练习 spingboot集成jpa(一):最基本的环境搭建 spingboot集成jpa(二):使用单元测试 1. pom.xml中添加依赖 <!-- jdbc ...

  4. 集成 websocket 的四种方案

    集成 websocket 的四种方案 1. 原生注解 pom.xml <dependency><groupId>org.springframework.boot</gro ...

  5. ionic 集成websocket

    ionic 集成websocket 创建service文件 ionic g service providers/webSocket service文件代码为 import { Injectable } ...

  6. 若依集成 WebSocket

    若依集成 WebSocket 引入依赖 创建 WebSocket 配置类,开启 WebSocket 支持 添加 WebSocketServer 类,创建 webSocket 端点 创建 control ...

  7. java websocket注解_【websocket】spring boot 集成 websocket 的四种方式

    集成 websocket 的四种方案 1. 原生注解 pom.xml org.springframework.boot spring-boot-starter-websocket WebSocketC ...

  8. spring boot 集成 websocket 实现消息主动推送

    前言 http协议是无状态协议,每次请求都不知道前面发生了什么,而且只可以由浏览器端请求服务器端,而不能由服务器去主动通知浏览器端,是单向的,在很多场景就不适合,比如实时的推送,消息通知或者股票等信息 ...

  9. SpringBoot集成WebSocket

    一.什么是WebSocket WebSocket是一种网络传输协议,位于OSI模型的应用层.可在单个TCP连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通讯. 客户端和服务端只需完成一次 ...

最新文章

  1. git同一项目使用多个远程仓库
  2. Linux下百度网盘一直进入不了登陆界面的解决方案
  3. margin-top的百分比是相对父元素的哪个值
  4. busybox arm-linux-gcc 4.4.4库的路径,BUSYBOX编译错误及解决方法总结
  5. django为什么需要子进程,如何关闭子进程,linux状态
  6. OPENCV-3 学习笔记
  7. 【linux】linux系统中常见配置文件及目录说明
  8. django框架 day06
  9. python方法调用方法_Python之方法调用
  10. 用c#写的smtp邮件发送类
  11. 重启防火墙的命令linux7,Linux CentOS7 防火墙 firewall 安装 重启 管理端口 等命令
  12. ECMAScript历史
  13. 大数据和云计算技术周报(第102期)
  14. nodejs学习笔记--Unexpected end of JSON input while parsing near ‘...“解决方法
  15. UDS诊断看这篇就够了,吐血整理
  16. 荣耀7x Android8,荣耀7X升级安卓8.0
  17. 抖音程序员HTML相册,快手抖音程序员表白女朋友3D立体相册源码html网页相册代码...
  18. Linux系统中文件系统管理
  19. Flask学习笔记:错误处理
  20. 语音播报功能的几种实现办法(包含TTS)

热门文章

  1. javaweb学习总结(二十一):JavaWeb的两种开发模式
  2. 拥抱开源,好莱坞有了自己的开源基金会:学院软件基金会
  3. 踩坑之旅:springboot+vue+webpack项目实战(一)
  4. 微信小程序把玩(十八)picker组件
  5. [原创]Retrofit使用教程(二)
  6. Nodejs基础中间件Connect
  7. Python基础教程学习笔记:第二章 列表和元组
  8. JAVA 几种多线程的简单实例 Thread Runnable
  9. 用ACL构建防火墙体系
  10. hdfs 操作 入门api