IM即時通訊設計技術點總結

2021-10-09 17:26:09 字數 1695 閱讀 3787

與傳統的c/s、b/s架構不同,im架構是c/s/c架構的;im系統最重要的指標就是實時性、可靠性。

如何保證訊息的可靠投遞

ack響應機制,超時、重傳、確認、去重的機制保證訊息的可靠投遞;

訊息已讀未讀狀態

(1)擴散寫方式:

直接更新訊息表中的read_status;

(2)擴散讀方式:

根據ack回執更新訊息狀態表,並更新群-成員關係中的last_ack_msgid;

im群聊訊息:擴散讀、擴散寫

擴散寫(存多份)

傳送人傳送一條群訊息到server,伺服器按照群成員拆分成多條訊息儲存並**。

群組 group(gid, gname)

群組-成員關係 group_member(gid, uid)

群組訊息 group_msg(gid, sender_uid, receiver_uid, msgid, msg_content, read_status)

群組 group(gid, gname)

群組-成員關係 group_member(gid, uid, last_ack_msgid)

群組訊息 group_msg(gid, sender_uid, msgid, msg_content)

如果對群中傳送的每一條訊息,都要統計多少人已讀,多少人未讀,則還需新增一張訊息狀態表,記錄每條訊息每個人的訊息狀態;

訊息狀態 msg_ack(gid, sender_uid, receiver_uid, msgid, read_status)

不同型別訊息傳送邏輯

文字:直接根據文字內容拼接訊息體傳送;

表情:直接根據表情id拼接訊息體傳送;

分享:直接拼接分享訊息體傳送;

系統訊息:直接拼接系統訊息體傳送;

:先將上傳至伺服器,再根據id拼接訊息體傳送,區分原圖、壓縮略圖;

語音:先將語音檔案上傳至伺服器,再根據音訊檔案id拼接訊息體傳送;

附件:先將附件上傳至伺服器,再根據附件id拼接訊息體傳送;

多端登入或多裝置登入

訊息同步訊息漫遊

使用者進入某個單聊或群聊頁面,下拉載入歷史訊息時,即從伺服器獲取之前的聊天記錄。前提:服務端必須儲存所有歷史訊息;

狐小e智慧型辦公平台,企業數位化建設的全景攻略

即時通訊IM

mqtt message queuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支援所有平台,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器和致動器 比如通過twitter讓房屋聯網 的通訊協議。xmp...

即時通訊 IM

1 協議選型 2 im伺服器選型 3 對協議和伺服器做相應修改,通常來說直接拿個標準協議和開源伺服器是一定不能用到生產環境的 4 保證訊息到達率,絕不丟訊息 一 協議選型 常用做im的協議 mqtt協議 ibm開發的乙個即時協議 優點 多平台 缺點 簡單的訊息協議,要自己實現好友群組 用例 推送 s...

即時通訊 im

no.1 即時通訊 作用 即時通訊 instant message,im 是指能夠即時傳送和接收 網際網路 訊息等的業務。1998年即時通訊的功能日益豐富,逐漸整合了 電子郵件 部落格 電視 遊戲和 搜尋 等多種功能。即時通訊已經發展成集交流 資訊 娛樂 搜尋 電子商務 辦公協作和企業客戶服務等為一...