最近 2 個月用業余時間寫了一個 IM ,動手之前想了很多,包括前期設計、語言、數據庫等,經過了一番思想斗爭,最終前台用 Vue.js 展示,Server 使用 node ,數據庫使用 MongoDB ,不想用關系型數據庫,存儲消息不方便,使用 WebSocket 與 server 進行即時通訊,要問為什么選這幾個,因為 node 不熟悉,VueJS 沒用過,MongoDB 沒用過,借機會熟悉下,豈不美哉,哈哈哈~~~
想象很豐滿,上手很骨干,真正開始上手的時候發現自己的思路是錯的,想太多是沒有用的,水滴石穿、鐵杵成針這些都是鮮活的例子,所以決定先把功能跑通,寫的 low 就 low 吧,本身也就是個小屌絲兒,自我安慰,勿噴。
千里之行始於足下,走起,目前已經用最基本的功能實現了連接服務器、二人會話(需同時在線)、獲取歷史消息記錄三個功能,后續會對代碼進行重構持續更新,寫完后我為它起了一個自認為響亮的名字 “MountTalk”。
先把源碼連接貼出來:
MountTalk-web:https://github.com/yuhongda0315/mounttalk-web
MountTalk-Server:https://github.com/yuhongda0315/mounttalk-server
第一次向 github 傳項目,寫的很一般,后續慢慢更新吧。
實現思路:
1、使用 node WebSocket 建立連接。
2、在 WebSocket 的 onMessage 事件中處理請求(下面會說到)。
3、持久化。
上圖兩張: