用消息隊列實現即時通訊


開篇

      突然有一天,橫空出現了三四種即時聊天工具,貌似是挑戰微信。結合我多年的編程經驗,我也想有個大想法,開發一款即時通訊工具。我的目的當然不是挑戰誰,而是想對自己多年的編程經驗進行一次總結。雖然多年來,從各種語言之間切換過,但是像這樣前后端一個人編寫,完成一個獨立項目還是不多的。為了加大點難度,決定采用django 2.0 的restframework做為后台進行開發,即時通訊采用消息隊列(MQTT)協議,客戶端暫時只開發Android端,並以公眾號或網頁的方式將編寫過程的文章編寫出來並推送。

 

選型

     MQTT:考慮到只有Windows服務器,而MQTT暫時只是做為消息傳輸媒介,所以決定采用apollo。至於后期要在MQTT上做二期開發,這是后話。

      服務端:前面也說過以Django的rest_framework進行接口編寫,以及admin進行簡單的界面以及數據添加管理,暫時也不考慮Web界面。

      客戶端:原生Android開發,且采用MVVM框架,以Room持久化庫,Lifecycle、Clean Architecture等最新技術進行嘗試,網絡則是以Rxjava 2和Retrofit進行訪問等。

 

主要功能

1、用戶注冊、登錄

      在沒有帳號的情況下,進行注冊,然后進行登錄等功能。

2、添加好友、群,查看好友、群信息

       通過查找功能,查找好友以及群,並進行添加;查看好友、群可以類似微信a-z進行篩選

3、發起群聊,建群,解散群,拉人入群,踢出群

        類似微信建群等功能

4、聊天功能

        該功能是此應用的主要功能,基本上是以微信為模板,可以單人聊天,可以群聊,聊天可以發送表情,圖片,拍攝照片、視頻,文件,位置,名片等。

5、掃一掃添加好友,加入群

6、個人資料修改,圖像修改,密碼修改

7、其他一些附助功能

      文件上傳下載,拉取離線消息,鑒權等。

基本上是以微信、QQ等即時聊天工具為藍圖,再結合具體開發而編寫出Android端的即時通訊程序,最終結果是以上功能都實現且編寫出相關紀錄文檔。

 

補充說明

     主要以總結過去經驗為主,暫時只是列出大題綱,后續會對前后台開發實現進行一些說明,同時能參照一些書籍規范一下開發文檔,制定模板等。為了方便說明,后續文章將以正文和補充材料兩大類進行。

希望大家能繼續關注后期文章

請關注公眾號有更多精彩等你:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM