基本原理
客户端与服务端的长连接,比如:浏览器中使用的WebSocket、服务端使用的gRPC、其它自定义的TCP协议。
通过实时长连接,客户端和服务端就可以保持实时通信。
客户端可以主动给服务端发送消息,服务端也可以主动给客户端发送消息。
客户端可以给多个用户(群组)发送消息,服务端也可以给多个用户(群组)发送消息。
设计和开发的基本步骤
第一步:
设计和开发当前在线的用户连接池
第二步:
用户发送的消息队列设计和开发
第三步:
设计和开发用户的客户端长链接
第四步:
前后端的处理流程:建立连接、接收消息、发送消息
第五步:
服务端处理:维护长连接、接收消息、处理消息和发送消息
第六步:
客户端处理:维护长连接,接收消息、处理消息和发送消息
第七步:
前后端联调和测试
难点和瓶颈
管理和维护长连接的难度
随着用户的增长,长连接的数量也就会越来越多。
如果只有几万个长连接,问题还不大,如果用户数量超过10万,100万,那么,单机的压力和瓶颈就会很明显。
消息管理的难度
如果每个聊天室限制100人、500人、1000人,这里的消息管理会容易些,也比较可控。
如果一个聊天室不限制人数,比如:在线直播,几万人、十几万人同时在一个聊天室,这里的消息群发就很容易出现消息风暴,无法把及时的所有消息群发出去。
请关注我,这个系列的文章会不断更新,一起来完成这个在线聊天室吧。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦