前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何设计和开发一个在线聊天室(1)

如何设计和开发一个在线聊天室(1)

原创
作者头像
一凡sir
发布2024-01-27 12:47:35
750
发布2024-01-27 12:47:35
举报
文章被收录于专栏:技术成长技术成长

基本原理

客户端与服务端的长连接,比如:浏览器中使用的WebSocket、服务端使用的gRPC、其它自定义的TCP协议。

通过实时长连接,客户端和服务端就可以保持实时通信。

客户端可以主动给服务端发送消息,服务端也可以主动给客户端发送消息。

客户端可以给多个用户(群组)发送消息,服务端也可以给多个用户(群组)发送消息。

设计和开发的基本步骤

第一步:

设计和开发当前在线的用户连接池

第二步:

用户发送的消息队列设计和开发

第三步:

设计和开发用户的客户端长链接

第四步:

前后端的处理流程:建立连接、接收消息、发送消息

第五步:

服务端处理:维护长连接、接收消息、处理消息和发送消息

第六步:

客户端处理:维护长连接,接收消息、处理消息和发送消息

第七步:

前后端联调和测试

难点和瓶颈

管理和维护长连接的难度

随着用户的增长,长连接的数量也就会越来越多。

如果只有几万个长连接,问题还不大,如果用户数量超过10万,100万,那么,单机的压力和瓶颈就会很明显。

消息管理的难度

如果每个聊天室限制100人、500人、1000人,这里的消息管理会容易些,也比较可控。

如果一个聊天室不限制人数,比如:在线直播,几万人、十几万人同时在一个聊天室,这里的消息群发就很容易出现消息风暴,无法把及时的所有消息群发出去。

请关注我,这个系列的文章会不断更新,一起来完成这个在线聊天室吧。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本原理
  • 设计和开发的基本步骤
  • 难点和瓶颈
    • 管理和维护长连接的难度
      • 消息管理的难度
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档