在企業(yè)數(shù)字化建設(shè)過程中,如何與客戶保持線上鏈接是重要的組成部分。而IM通信系統(tǒng)就屬于數(shù)字化建設(shè)的基礎(chǔ)設(shè)施。那么,如何實現(xiàn)一個符合企業(yè)需求的IM系統(tǒng)呢?采購當(dāng)然是其中需要考慮的方式之一。但就我個人的經(jīng)驗來看,市面上好的IM廠商很稀少,因為IM廠商需要做標(biāo)準(zhǔn)化產(chǎn)品,所以如果公司的業(yè)務(wù)并不是傳統(tǒng)意義上的社交IM業(yè)務(wù)。那么IM廠商提供的功能大部分用不到,并且對于群聊,單聊等基礎(chǔ)功能還要做二次開發(fā)。
今天,我們并不討論在什么情況下需要采購,什么情況下需要自研,等后面寫產(chǎn)品思考類的文章時可以分享這些?,F(xiàn)在我們只討論一個話題,如何設(shè)計開發(fā)一個屬于自己的IM系統(tǒng)?
首先,熟悉業(yè)務(wù)場景是架構(gòu)設(shè)計的一部分,因為它決定了IM系統(tǒng)的功能范圍。我們可以為這個IM定義某個業(yè)務(wù)場景:
客服網(wǎng)聊場景:
1,如果該用戶有專屬客服,則和專屬客服進行會話 如果專屬客服不在線,進入等待隊列,等坐席應(yīng)答;如果該用戶為VIP,則可以進入優(yōu)先級較高的等待隊列。否則正常排隊;
2,客服可以在線邀請投顧或者其他專家,進入服務(wù)客戶的三方會話
3,自定義消息卡片:
支持注冊綁卡/產(chǎn)品預(yù)約;
支持當(dāng)前業(yè)務(wù)進度通知:“用戶正在填寫身份證”,“用戶綁卡失敗” ,
支持消息優(yōu)先級,比如“用戶支付失敗”
支持進入場景提前通知:比如用戶從某會議進入,用戶從app端會議/直播/交易頁面進入
4,超大群聊:可以支持3000人的聊天群(需要設(shè)計“讀擴散”和“寫擴散”問題的解決機制)
結(jié)合以上的場景,我們接下來可以定義我們的功能設(shè)計:
各業(yè)務(wù)根據(jù)分配到的appid接入IM服務(wù) (前端SDK植入)
支持PC/H5/小程序通過websocket連接,APP通過socket連接
支持單聊/群聊/超大群(3000人)/聊天室
支持文本/圖文/音視頻/自定義消息
支持離線/歷史消息存儲
支持單聊轉(zhuǎn)群聊場景
支持可集群部署,gRPC遠程調(diào)用
應(yīng)用架構(gòu)設(shè)計:
首先,IM包括最基本的三個功能模塊,分別是IM Server負(fù)責(zé)連接管理,IM Route負(fù)責(zé)路由管理,以及IM stroage負(fù)責(zé)消息存儲管理。
從前面的場景中,我們也能發(fā)現(xiàn)在IM通信過程中,需要考慮兩個最重要的ID的設(shè)計:用戶id,群id。可以說這兩個id在消息的分庫分表,負(fù)載均衡,服務(wù)擴容,服務(wù)宕機等場景中都會起到很重要的作用。其中,我們考慮兩個方面:
A,平衡性:每臺服務(wù)器均勻處理請求文章來源:http://www.zghlxwxcb.cn/news/detail-495641.html
B,單調(diào)性:擴容或者宕機時,部分?jǐn)?shù)據(jù)遷移即可文章來源地址http://www.zghlxwxcb.cn/news/detail-495641.html
到了這里,關(guān)于如何實現(xiàn)IM即時通信系統(tǒng)(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!