Flutter快速搭建聊天

之前項目中使用的環信聊天,我們的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實現了, 這樣以來,也能解決了適配鴻蒙的問題。 ?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899368.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899368.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899368.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sa-Token

簡介 Sa-Token 是一個輕量級 Java 權限認證框架,主要解決:登錄認證、權限認證、單點登錄、OAuth2.0、分布式Session會話、微服務網關鑒權 等一系列權限相關問題。 官方文檔 常見功能 登錄認證 本框架 用戶提交 name password 參數,調用登…

基于javaweb的SSM航班機票預訂平臺系統設計與實現(源碼+文檔+部署講解)

技術范圍:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

格雷碼、漢明碼,CRC校驗的區別

格雷碼、漢明碼和CRC校驗都是用于數據傳輸和存儲中的編碼技術。 它們在原理、功能和應用場景上存在顯著區別。 1.格雷碼(Gray Code) ? 定義:格雷碼是一種特殊的二進制編碼,任意兩個相鄰的碼字之間僅有一位不同。 ? 功能&#x…

【報錯】 /root/anaconda3/conda.exe: cannot execute binary file: Exec format error

背景: 安裝Anaconda3 bash Anaconda3-****-Linux-x86_64.sh 報錯: /root/anaconda3/conda.exe: cannot execute binary file: Exec format error 原因分析: 安裝包(如

JAVA實現動態IP黑名單過濾

一些惡意用戶(可能是黑客、爬蟲、DDoS 攻擊者)可能頻繁請求服務器資源,導致資源占用過高。因此需要一定的手段實時阻止可疑或惡意的用戶,減少攻擊風險。 通過 IP 封禁,可以有效拉黑攻擊者,防止資源被濫用,保障合法用戶…

開源的CMS建站系統可以隨便用嗎?有什么需要注意的?

開源CMS建站系統雖然具有許多優點,但并非完全“隨便用”。無論選哪個CMS系統,大家在使用的時候,可以盡可能地多注意以下幾點: 1、版權問題 了解開源許可證:不同的開源CMS系統采用不同的開源許可證,如GPL、…

故障識別 | 基于改進螂優化算法(MSADBO)優化變分模態提取(VME)結合稀疏最大諧波噪聲比解卷積(SMHD)進行故障診斷識別,matlab代碼

基于改進螂優化算法(MSADBO)優化變分模態提取(VME)結合稀疏最大諧波噪聲比解卷積(SMHD)進行故障診斷識別 一、引言 1.1 機械故障診斷的背景和意義 在工業生產的宏大畫卷中,機械設備的穩定運行…

探究 CSS 如何在HTML中工作

2025/3/28 向全棧工程師邁進&#xff01; 一、CSS的作用 簡單一句話——美化網頁 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 對于如上代碼來說&#xff0c;其顯示效果如下&#xff1…

硬件老化測試方案的設計誤區

硬件老化測試方案設計中的常見誤區主要包括測試周期不足、測試條件過于單一、樣品選擇不當等方面。其中&#xff0c;測試周期不足尤為突出&#xff0c;容易導致潛在缺陷未被完全暴露。老化測試本質上是通過加速產品老化來模擬長期使用狀況&#xff0c;因此測試周期不足會嚴重削…

無錫零碳園區“三年突圍”安科瑞源網荷儲充系統如何破解“綠電難、儲能貴、調度亂”困局?

零碳園區建設如火如荼&#xff0c;為何企業“不敢投、不會用”&#xff1f; 無錫市政府3月27日發布《零碳園區建設三年行動方案》&#xff0c;目標到2027年建成10家以上零碳園區、20家零碳工廠、10個源網荷儲一體化項目。但企業仍存疑慮&#xff1a; 綠電消納難&#xff1a;光…

docker torcherve打包mar包并部署模型

使用Docker打包深度網絡模型mar包到服務端 參考鏈接&#xff1a;Docker torchserve 部署模型流程——以WSL部署YOLO-FaceV2為例_class myhandler(basehandler): def initialize(self,-CSDN博客 1、docker拉取環境鏡像命令 docker images出現此提示為沒有權限取執行命令&…

Redis 分布式鎖實現深度解析

Redis 分布式鎖是分布式系統中協調多進程/服務對共享資源訪問的核心機制。以下從基礎概念到高級實現進行全面剖析。 一、基礎實現原理 1. 最簡實現&#xff08;SETNX 命令&#xff09; # 加鎖 SET resource_name my_random_value NX PX 30000# 解鎖&#xff08;Lua腳本保證原…

kubernetes》》k8s》》 kubeadm、kubectl、kubelet

kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三個組件。kubeadm負責集群的快速構建和初始化&#xff0c;為后續的容器部署和管理提供基礎&#xff1b;kubectl作為命令行工具&#xff0c;提供了與Kubernetes集群交互的便捷方式&#xff1b;而…

linux 硬盤擴展

場景&#xff1a; [rootlocalhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 …

Docker Desktop 界面功能介紹

Docker Desktop 界面功能介紹 左側導航欄 Containers(容器): 用于管理容器,包括查看運行中或已停止的容器,檢查容器狀態、日志,執行容器內命令,啟動、停止、刪除容器等操作。Images(鏡像): 管理本地 Docker 鏡像,可查看鏡像列表、從 Docker Hub 拉取新鏡像、刪除鏡…

C++細節知識for面試

1. linux上C程序可用的棧和堆大小分別是多少&#xff0c;為什么棧大小小于堆&#xff1f; 1. 棧&#xff08;Stack&#xff09;大小 棧默認為8MB&#xff0c;可修改。 為什么是這個大小&#xff1a; ?安全性&#xff1a;限制棧大小可防止無限遞歸或過深的函數調用導致內存…

數據設計(范式、步驟)

文章目錄 數據設計1.數據庫設計的三大范式2、數據庫設計的具體步驟 數據設計 1.數據庫設計的三大范式 關系型數據庫的三大范式&#xff0c;指導如何設計一個關系型數據庫。 1NF&#xff1a; 關系表的每個字段&#xff0c;都應該是不可再分的&#xff0c;——保證原子性。 字…

PhotoShop學習03

1.更改圖像大小 通常情況下&#xff0c;如果我們想在某些上傳圖片&#xff0c;會發現我們的圖片可能會過大或者過小&#xff0c;為此&#xff0c;我們需要調整圖像的大小&#xff0c;使之符合網站的規則。 首先打開photoshop&#xff0c;打開一張圖片。首先我們需要了解這張圖…

Vue 項目中使用$refs來訪問組件實例或 DOM 元素,有哪些注意事項?

大白話Vue 項目中使用$refs來訪問組件實例或 DOM 元素&#xff0c;有哪些注意事項&#xff1f; 在 Vue 項目里&#xff0c;$refs 是個超實用的工具&#xff0c;它能讓你直接訪問組件實例或者 DOM 元素。不過使用的時候&#xff0c;有一些地方可得注意&#xff0c;下面咱就詳細…

【安全運營】關于攻擊面管理相關概念的梳理(二)

CYNC&#xff08;持續可見性和網絡控制&#xff09; CYNC&#xff08;Continuous Visibility and Network Control&#xff09;即“持續可見性和網絡控制”&#xff0c;是一個與網絡安全和IT運營管理相關的概念。它強調的是在一個組織的數字環境中&#xff0c;確保對所有資產、…