自己構造的即時通訊伺服器基本功能搭建完成!

2021-09-06 00:02:31 字數 576 閱讀 7858

參考了qq、msn、gtalk、fetion的協議和源**,進行了一定的優化。

傳輸協議使用精簡xml表達(使用attribute,不使用element) 

登入方式參考了qq,採取先獲取token,然後對之後的資訊進行加密傳輸。

在穩定性方面,增強了對鏈結的健康度檢查,包括出錯率、傳送頻率等等;一旦出現異常立刻結束通話。

對話方面參考了sip協議,使用invite?bye協議進行會話繫結。

客戶端設計參考了lumaqq.net的小部分分類,例如connectionmanager/messagemanager/contactmanager等。

同時極大簡化了架構,使二次開發更加容易。效果如圖:

伺服器目前使用console,沒有一定的控制功能。基本上就是自動執行了。

可能將來會加入伺服器效能監控的部分。比如強制下線、健康檢查等等。 

即時通訊伺服器架構的一些思考

對於乙個即時通訊伺服器來說,在使用者量少的時候,一台伺服器就足以提供所有的服務。而這種架構也最簡單,舉個例子,使用者a與使用者b互為好友,a向b發訊息,伺服器接收到訊息時,解析出接收訊息的人,直接 給b即可。可是當使用者數量越來越多時,一台伺服器已經無法所有使用者的需求,這時就要進行服務擴容,進行分...

即時通訊伺服器架構的一些思考

對於乙個即時通訊伺服器來說,在使用者量少的時候,一台伺服器就足以提供所有的服務。而這種架構也最簡單,舉個例子,使用者a與使用者b互為好友,a向b發訊息,伺服器接收到訊息時,解析出接收訊息的人,直接 給b即可。可是當使用者數量越來越多時,一台伺服器已經無法所有使用者的需求,這時就要進行服務擴容,進行分...

環信IM即時通訊快速整合和基本功能的使用

不包含實時語音版本 sdk hyphenatelite 引用時 import pod hyphenatelite cn 包含實時語音版本 sdk hyphenate 引用時 import 三 設定新增靜態庫 第 1 步 向build phases link binary with libraries...