客户端与服务端的长连接,比如:浏览器中使用的WebSocket、服务端使用的gRPC、其它自定义的TCP协议。
通过实时长连接,客户端和服务端就可以保持实时通信。
客户端可以主动给服务端发送消息,服务端也可以主动给客户端发送消息。
客户端可以给多个用户(群组)发送消息,服务端也可以给多个用户(群组)发送消息。
第一步:
设计和开发当前在线的用户连接池
第二步:
用户发送的消息队列设计和开发
第三步:
设计和开发用户的客户端长链接
第四步:
前后端的处理流程:建立连接、接收消息、发送消息
第五步:
服务端处理:维护长连接、接收消息、处理消息和发送消息
第六步:
客户端处理:维护长连接,接收消息、处理消息和发送消息
第七步:
前后端联调和测试
随着用户的增长,长连接的数量也就会越来越多。
如果只有几万个长连接,问题还不大,如果用户数量超过10万,100万,那么,单机的压力和瓶颈就会很明显。
如果每个聊天室限制100人、500人、1000人,这里的消息管理会容易些,也比较可控。
如果一个聊天室不限制人数,比如:在线直播,几万人、十几万人同时在一个聊天室,这里的消息群发就很容易出现消息风暴,无法把及时的所有消息群发出去。
请关注我,这个系列的文章会不断更新,一起来完成这个在线聊天室吧。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。