WebSocket集群开源项目使用

本文介绍了一种使用Redis集群管理WebSocket的方案,并提供了具体的Spring Boot项目实现案例。通过启用@EnableRedisWebSocketManager注解,利用Redis的订阅/发布机制实现跨服务器的消息传递。文章还分享了一个包含一对一发送、群发等功能的实战代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里鸣谢码云xxssyyyyssxx 作者
场景公司的一个直播业务需要用到集群WebSocket,2019年用过以Redis集群的方式,因为自己的经验不足,有消息累积增加发送,意思就是,当一个用户,重复断开、连接。会根据次数,来增加接收信息的次数。
  1. 直接开干,上才艺

maven项目直接引入pom依赖

<!-- https://mvnrepository.com/artifact/top.jfunc.websocket/websocket-springboot-starter -->
		<dependency>
			<groupId>top.jfunc.websocket</groupId>
			<artifactId>websocket-springboot-starter</artifactId>
			<version>1.8.2.4</version>
		</dependency>

2.用法

  • 第一步在SpringBoot 启动类加上注解
@EnableMemWebSocketManager 单机管理
或者
@EnableRedisWebSocketManager 利用Redis的订阅/发布机制实现集群管理
  • 第二步在要用地方注入Bean
@Autowired
private WebSocketManager webSocketManager;
  • 第三步发送群发消息
public void sendWebsocket(){
		Map<String,Object> map = new HashMap<>();
		Map<String,Object> paramMap = new HashMap<String,Object>();
		map.put("liveKey","alive");
		map.put("liveValue",paramMap);
		String result = JSON.toJSONString(map);
		try {
			log.info("websocket推送的信息为:{}",result);
			webSocketManager.broadcast(result);
		}catch (Exception e){
			e.printStackTrace();
			log.info("websocket推送异常",result);
		}
		log.info("-----推送websocket--end---");
	}

该源码中包括一对一发送、群发、socket验活等,具体请查看码云。
该代码已在千级并发中实战开发中,取得优秀的成绩,请放心使用
再次感谢作者

感觉帮到了你,不要着急走,看你的心情,打赏一下C币,主要是下载东西太耗C币了,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值