首页
最新活动
服务器租用
香港服务器租用
台湾服务器租用
美国服务器租用
日本服务器租用
新加坡服务器租用
高防服务器
香港高防服务器
台湾高防服务器
美国高防服务器
裸金属
香港裸金属服务器
台湾裸金属服务器
美国裸金属服务器
日本裸金属服务器
新加坡裸金属服务器
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
CDN
CDN节点
CDN带宽
CDN防御
CDN定制
行业新闻
官方公告
香港服务器资讯
帮助文档
wp博客
zb博客
服务器资讯
联系我们
关于我们
机房介绍
机房托管
登入
注册
帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
联系客服
服务器资讯
/
香港服务器租用
/
香港VPS租用
/
香港云服务器
/
美国服务器租用
/
台湾服务器租用
/
日本服务器租用
/
官方公告
/
帮助文档
spring-boot基于websocket实现服务器推送消息到客户端
发布时间:2024-03-03 03:13:45 分类:帮助文档
spring-boot基于websocket实现服务器推送消息到客户端 spring-boot基于websocket实现服务器推送消息到客户端 一、添加依赖
org.springframework.boot
spring-boot-starter-websocket
org.springframework.boot
spring-boot-starter-tomcat
一定要将tomcat依赖包排除掉 否则会报错 javax.websocket.server.ServerContainer not available 二、添加配置类 通过配置类 启用WebSocket的支持: import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter; / * @Author: Robin * @ClassName: WebSocketConfig * @Description: 开启WebSocket支持的配置类 * @DateTime: 2024/2/27 14:27 */ @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } 三、创建WebSocketEndpoint处理类 import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.util.concurrent.ConcurrentHashMap; / * @Author: Robin * @ClassName: WebSocketEndpoint * @Description: websocket连接接口 * @DateTime: 2024/2/27 10:57 */ @ServerEndpoint("/wss/{id}") @Component @Service public class WebSocketEndpoint { // 用于存储所有打开的会话,键是唯一的客户端ID private static final ConcurrentHashMap
sessions = new ConcurrentHashMap<>(); private String id; @OnOpen public void onOpen(@PathParam("id") String id, Session session) { // 生成一个唯一的客户端ID sessions.put(id, session); this.id = id; System.out.println("连接已打开,客户端ID: " + id); } @OnMessage public void onMessage(String message, Session session) { System.out.println("收到消息: " + message); } @OnClose public void onClose(Session session) { String clientId = this.id; sessions.remove(clientId); System.out.println("连接已关闭,客户端ID: " + clientId); } @OnError public void onError(Session session, Throwable throwable) { String clientId = this.id; sessions.remove(clientId); System.out.println("发生错误,客户端ID: " + clientId); throwable.printStackTrace(); } // 用于向特定客户端发送消息的方法 public static void sendMessageToClient(String id, String message) { Session session = sessions.get(id); if (session != null && session.isOpen()) { try { session.getAsyncRemote().sendText(message); } catch (Exception e) { System.out.println("发送消息时发生错误,客户端ID: " + id); e.printStackTrace(); } } } } 连接时传入的id为业务系统中用户的身份id便于确认当前用的身份,已key的形式存入sessions的map中,当需要给指定的用户推送消息时候只需要传入id便可找到对应的session 四、测试连接 websocket在线测试工具有很多、postman也可以进行测试 我自己用的是 WebSocket在线测试工具 (wstool.js.org) websocket请求分为两种:ws和wss ws:针对于没有ssl证书的域名,可以理解为http wss:针对于有ssl证书的域名,可以理解为https 1、本地服务连接 当调用本地服务测试时要采用ws的请求形式,wss是调不通的 ws://localhost:13400/wss/{id} 2、服务器连接 服务器如果采用了nginx代理,则需要修改nginx配置文件,添加针对于wss请求的配置参数 location /wss { proxy_pass http://127.0.0.1:13400; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 默认60s断开连接 proxy_read_timeout 60s; } 请求地址:wss://域名/wss/{id} eader Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; # 默认60s断开连接 proxy_read_timeout 60s; } 请求地址:wss://域名/wss/{id}
上一篇
香港盈科云服务器
下一篇
win香港云服务器
相关文章
「玩转幻兽帕鲁部署」2024年搭建幻兽帕鲁服务器的方法
NAT介绍及命令配置
阿里云异地登陆怎么办
八爪鱼新鲜的买完怎么存放
Kali Linux神秘工具教程(详细版)
对大学生怎么服务器
icp备案网站接入信息怎么写
【Linux】冯诺依曼体系结构
幻兽帕鲁服务器游戏怎么升级版本?
香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价
7*24H在线售后
高可用资源,安全稳定
1v1专属客服对接
无忧退款试用保障
德讯电讯股份有限公司
电话:00886-982-263-666
台湾总部:台北市中山区建国北路一段29号3楼
香港分公司:九龙弥敦道625号雅兰商业二期906室
服务器租用
香港服务器
日本服务器
台湾服务器
美国服务器
高防服务器购买
香港高防服务器出租
台湾高防服务器租赁
美国高防服务器DDos
云服务器
香港云服务器
台湾云服务器
美国云服务器
日本云服务器
行业新闻
香港服务器租用
服务器资讯
香港云服务器
台湾服务器租用
zblog博客
香港VPS
关于我们
机房介绍
联系我们
Copyright © 1997-2024 www.hkstack.com All rights reserved.