前言

這是我的畢業(yè)設計。
剛開始確定這個課題的時候是因為以前有稍微研究過一些XMPP協(xié)議,在這個基礎上做起來應該不難。然后開始選技術的時候還有半年,我想為什么不從更底層做起呢!那就不用XMPP,當時接觸過相關的即時通訊技術還有WebSocket,那為什么直接從更底層的Socket開始封裝呢
服務端就用Go語言吧,用來做IM服務器和HTTP服務器都很好。

技術選型

既然是基于Socket,iOS端我并不準備中C語言的Socket開發(fā)封裝起,而是使用一個第三方庫CocoaAsyncSocket。XMPP的iOS framework也是從這個庫開始封裝。而Go語言的IM服務端則直接使用原生開發(fā)即可,無論是UDP還是TCP都已經(jīng)封裝的很好。

HTTP服務器使用的框架是Gin,已經(jīng)相當成熟,可以用于大型服務端的開發(fā)了。

關于傳輸?shù)臄?shù)據(jù)格式,XMPP使用的是XML,但是體積太大,冗余過多不必要的數(shù)據(jù),考慮了很久好像也沒必要自己封裝二進制的數(shù)據(jù)格式,我用的是Google的protocol buffer。HTTP服務器還是使用JSON。

我還需要存儲客戶端的IP地址,由于需要快速讀寫,我使用的是

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網(wǎng)站設計培訓,網(wǎng)站建設培訓學習是年輕人改變自己的最好方式