亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何設計和開發一個在線聊天室(1)

標簽:
設計 架構

图片描述

基本原理

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

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

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

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

设计和开发的基本步骤

第一步:

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

第二步:

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

第三步:

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

第四步:

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

第五步:

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

第六步:

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

第七步:

前后端联调和测试

难点和瓶颈

管理和维护长连接的难度

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

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

消息管理的难度

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

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

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

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
1.7萬
獲贊與收藏
2254

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消