之前項目中使用的環信聊天,我們的App使用的Flutter開發的 。?
所以,就使用的?em_chat_uikit ,這個是環信開發的Flutter版本的聊天。?
一開始,我們也用的環信的聊天,是收費的,但是,后面就發現,我們的量其實沒那么大,使用環信的話,交的錢買到的服務,其實對于我們來說是過剩的。 ?于是,就自己搭建了聊天,這樣也就不用付費了。?
問題也來了, 之前聊天功能直接集成的 em_chat_uikit 直接就可以用的。 現在自己搭建的話,那豈不是要重新開發界面。 經過測試,發現可以繼續使用 em_chat_uikit 來開發聊天。?
如上圖,我集成的是 em_uikit_chat 2.0.3 版本,其實把這些 actions ?文件夾里的方法,都對接到自己的后臺API,就可以搞定了 。?
經過測試,完全可行, 我是代碼集成了em_uikit_chat ,所以,聊天的界面,對接的接口,都直接在這個 em_uikit_chat 內來改, 這樣,以后如果有新的項目啟動,也可以把聊天模塊直接搬到別的項目來使用。?
數據庫一共建了4張表,會話列表、用戶信息、好友列表、聊天記錄列表,也是按照?em_uikit_chat 的格式對應字段來創建的。 這樣,本地存儲就解決了。?
后臺實現的接口大概有 20 個接口,?em_uikit_chat 的命名還是很規范的,所以,按照你們的需求,往里面填充就好了; 整個過程還是挺順利的。?
另外,就是環信他是有技術支持的,所以,你懂的,em_uikit_chat 內如果有不懂的地方,也可以去找環信咨詢。 ?真可wei是,把hao羊毛搞到了極致了。 哈哈。 ?主要我們體量還沒那么大,每個月付幾千的費在聊天上,確實浪費; 自己搭建一個可以滿足需求,又能免掉這個費用。 還是值得的。 當然,后期用戶量如果很大了, 我們這樣集成 ?em_uikit_chat 的話,也能一鍵切回到環信。?
其實,還有一個原因,那就是環信的Flutter版他并沒有適配鴻蒙,他的em_uikit_chat是純Flutter的,這個遷移到鴻蒙不會有什么問題。 問題就在于em_uikit_chat 依賴 im_flutter_sdk ,這個 im_flutter_sdk 又對接的Native的聊天sdk,也就是對應的 Android、ios、鴻蒙都有原生的sdk,偏偏 im_flutter_sdk 與鴻蒙原生sdk之間的橋接,環信一直沒有去實現。 這就導致,哪怕我們集成了em_uikit_chat 也還是不支持鴻蒙的。?
所以,這次自己搭建聊天后臺, 就能解決這個問題了, 我們的項目不再去依賴Native的聊天sdk了,websocket通信,還有那20多個接口,都在Flutter實現了, 這樣以來,也能解決了適配鴻蒙的問題。 ?