前言
本篇主要講解一個東西,就是我們自定義系統消息。效果如下:
首先我們要做的准備工作就是改寫 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