如何從零搭建一個消息通訊模塊,只需幾招就可以了,非常受用。
牛刀平臺的消息通訊設(shè)計思路
想做好一個完整的即時通訊模塊可沒那么容易,需要充分的思考數(shù)據(jù)的存儲,在線用戶數(shù)據(jù)的推送,離線用戶的數(shù)據(jù)保留,新數(shù)據(jù)、未查看數(shù)據(jù)的設(shè)計。以及一對一聊天時,數(shù)據(jù)的即時呈現(xiàn)。這需要非常深度的思考才能做好。我再這里先把基本的思路寫了吧,今后有機(jī)會在錄制視頻講一講大家就明白了。
功能效果:
我想,效果才能吸引人,沒效果都是耍流氓。



數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫核心是消息存儲表,其中至少要有:生產(chǎn)者、消費者、消息、查看狀態(tài)。
再一個,如果用戶相互聊天,需要保留聊天好友記錄。第三,允許用戶自己設(shè)置訂閱,比如有些內(nèi)容平臺發(fā)了,但是我不喜歡這里消息,這需要允許用戶設(shè)置的,也就是消息主題的定制。所以也需要設(shè)置相關(guān)的數(shù)據(jù)庫表進(jìn)行存儲、設(shè)置。下面是四張表:

功能設(shè)計思路
以下是在本子上畫的,這是初稿,整個開發(fā)過程基本圍繞這個思路,變化不大。

簡單解釋一下:
1)離線數(shù)據(jù)未讀消息:數(shù)據(jù)從vuex狀態(tài)來,在頁面被加載時主動去得到(也就是當(dāng)你不在的時候,消息沒法發(fā)給你,給你放數(shù)據(jù)庫了,但是狀態(tài)是未讀的);
2)在線未讀消息:只要后臺有數(shù)據(jù),后臺把數(shù)據(jù)發(fā)送給消息代理,同時保留一份到數(shù)據(jù)庫。前端自動就和消息代理獲得聯(lián)系,把數(shù)據(jù)實時的呈現(xiàn)出來(如:3個未讀消息,或者一個未讀列表);
3)在線實時獲取數(shù)據(jù):一對一聊天:兩人同時在線時,聊天時數(shù)據(jù)實時呈現(xiàn),同樣注意離線數(shù)據(jù)的存儲。
ok,今天就介紹到這里,這里我寫了一篇詳細(xì)的文章,里面講技術(shù)選型、代碼,比較詳細(xì)。
可以到這里來看:http://niudao.cn/blogs/14