使用websocket做即时通讯功能05————修复即使通讯的数据丢包问题

背景

接上一篇博客tomcat版本做即时通讯的问题记载,我们抛出了以下几个问题。

  • 单个tomcat的即时通讯有并发上线(200-1000)
  • 前端关闭连接后端并不一定得到立即的响应,浪费资源,并造成消息丢包
  • 通道被设备回收,前后端都不知情。导致前端消息发送不到后端,丢包。
    这一篇博客,我们就是为了稳定的消息系统而来的。
    首先,我们确认了后端单台服务器的处理能力有限,因此。我们需要做集群。其次我们为了不让前端关闭或回收,后端不响应。我们需要设置心跳,定时清除无关的连接。
    最后,我们需要有消息确认机制,做到保证消息的100%接收。

解决方案

  • 集群部署聊天(实现横向可扩展)
  • 消息确认机制,确认消息稳定的送达
  • 后端心跳处理不活跃的消息。
    因此我们大概有下面这几个业务线需要处理
    1.登陆-------->接收未读的消息-------->获取即时通讯地址------->连上即时通讯---------->开启心跳重连(http—>ws)
    2.发送消息-------->后端保存消息,并尝试推送消息(http—>ws)
    3.接收消息--------->告诉服务器确认接收(ws------>http)
    4.后端开启定时没收到消息主动断线
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值