关于分布式环境聊天系统的搭建及开发

现在前后的的聊天实现分类:
1,通过轮询的方式。
2,通过长连接的方式。
优缺点:
第一种方式实现简单,但是实现起来会有很多坑。亲身经历过的,比如轮询会造成后端服务接口压力过大,前端也会有数据拼接展示的问题。
第二种方法是比较实际且可行的方法。下面我们来详细介绍下。
技术栈:
websocket协议,java后端服务语言,小程序前端,redis缓存等技术
实现步骤:
1,具体实现我们通过websocket来实现全都后端的消息实时通知,用redis实现后端服务节点之间的消息通知,这里redis的作用相当于一个消息队列作用等价于mq。我们通过pub,sub命令实现的一个mq。
java代码:

> public class MyWebSocket {
>     //  websocket类的作用域是每个session回话,所有这里不能通过spring来托管,需要通过手动的方式来创建一个bean对象
>     private RedisService redisService = SpringBeanUtils.getBean(RedisService.class);
>     //与某个客户端的连接会话,需要通过它来给客户端发送数据
>     private Session session;
>     //用以记录用户和房间号的对应关系(sessionId,room)
>     private static HashMap<String, String> RoomForUser = new HashMap<String, String>();
>     //用以记录房间和其中用户群的对应关系(room,List<用户>)
>     public static HashMap<String, CopyOnWriteArraySet<User>> UserForRoom = new HashMap&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值