Flutter快速搭建聊天

发布于:2025-03-26 ⋅ 阅读:(25) ⋅ 点赞:(0)

之前项目中使用的环信聊天,我们的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实现了, 这样以来,也能解决了适配鸿蒙的问题。