前言
本篇主要講解一個東西,就是我們自定義系統訊息。效果如下:
首先我們要做的準備工作就是改寫 layim 的訊息模板,如果不改的話就成為某個使用者傳送的訊息了,那麼體驗就稍微差一些。找到模板我們看一下。
注意,紅框部分是我更改後的,簡單讀一下可以看出來,我只是給聊天訊息加了個引數 system,如果有這個引數,那麼我們直接給加一個div就可以了,否則還是顯示使用者名稱,訊息內容等資訊。同樣,我們前端呼叫layim 的getMessage介面,加一個system引數即可。
之前加群加好友流程在第五篇已經介紹,今天相當於加一個小業務,我們用QQ都知道,群主或者管理員稽核通過之後,群裡會有通知 xxx加入群。我們現在少這麼一個邏輯,找到程式碼部分加上即可。
之前的推送已經講過很多了,這裡不再贅述,只要前端在多注意一些細節處理就可以了。比如線上使用者怎麼處理,非線上使用者怎麼處理,系統訊息是否要儲存等等。
總結
本篇比較短一些,確實是沒啥內容了,再講就是更多的業務了,沒有什麼意義。
專案從建立到現在快接近一個月了,自己通過研究學習了不少東西。再次感謝園友的支援。
技術總結:
1.SignalR中的ConnectionId每次重新整理之後都會變動,我們可以通過重寫IUserIdProvider的GetUserId方法來實現使用自己系統內的使用者ID傳送訊息。
2.Layim程式碼中,通過layim-event繫結事件,通過 prototype 對外公開方法介面
3.在所有的客戶端接收訊息中,我只定義了receiveMessage方法,而通過接收到的統一格式的訊息體來進行不同業務的處理。
4.正如我提到過很多次的,只要訊息推送穩定,客戶端能夠隨便定義和處理自己的業務邏輯,所以重中之重就是保證SignalR訊息推送的穩定性,所以後臺的架構設計,訊息快取,非同步處理等。(本菜還處在理論階段。。。)。
5.系列部落格地址,請移步:
ASP.NET SignalR 與 LayIM2.0 配合輕鬆實現Web聊天室 實戰系列(不斷更新中)
GitHub地址:https://github.com/fanpan26/LayIM_NetClient
交流群:145322742