即時通訊系統

經驗總結

這學期做了一次即使通訊聊天系統,后端完全靠自己設想,用了最原生態的Java環境實現的,真的是收益匪淺,那么接下來,我就簡單的分享一波吧。


??先從信息對接開始說一說吧。起初前后端信息對接利用的只是簡單的把每種信息按照固定格式去編碼轉二級制然后傳輸,例如1#IP#user#pvd#time,表示向服務端發送登陸消息的請求。這種信息傳輸設計也是最容易想到的,但是服務端那邊要解析,打包,反饋等操作就比較亂了,不太符合對象化的思維。再后來優化系統的時候我們找到了對象流傳輸的方法,就是把信息定義成一個實現了serializable接口的類,這樣定義好的類可以打包成字節流,然后傳輸出去。因為類的屬性很好存取,再里面再加上一個枚舉類型的type屬性,就可以很方便的判斷信息類型,然后再根據信息類型去取出對應的屬性。在之后寫解析類的時候省了相當多的麻煩,特別方便。


??再說我設計的數據庫表吧,數據庫的表總分六種類型,其中有兩種是總表,有userIformation(總用戶信息表)和onlineUsers(在線用戶表)。還有三種是用戶個人的表,有listID(用戶好友列表)、verifyID(用戶個人信息驗證表)和fileID(用戶文件記錄表)。最后一種是C(ID1)C(ID2),是ID1和ID2兩個用戶之間的聊天記錄表。這幾個表基本涵蓋了聊天所有的基本信息。設計onlineUser表的想法是可以對在線好友更好的訪問,實時監控到在線好友狀況。
??最后是服務端的解析類,服務端最核心地方一個是信息接受線程,一個是信息對象發送類,還有一個就是信息解析類。解析類里面設計了很多與客戶端信息對接的方法,每一種存在的訪問信息種類都會單獨寫一個方法放在解析類里面,方法里面對信息解析過程一般都會對數據庫操作一遍,然后視情況反饋給客戶端對應的信息對象。


??通過這次的項目實踐,我遇到了許多問題,很多都是致命題,比如后端給前端設計信息對接格式,前后端遲遲對接不起來,總之就是項目不能夠按照既定的流程走,這真是硬傷,以后再做項目一定要有一個說話有權威,并且認真負責的人做隊長,經常匯報項目進度等等。要好好規劃才行,不過最后的結果還好,項目拿了A+,還是要感謝我的隊友們,沒有大家共同努力是不可能的有這個結果的,謝謝。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容