在 Flutter 上实现 IM(即时通讯) 的功能,我们可以使用第三方的 SDK,比如腾讯云 IM等等。这些 SDK 都提供了丰富的 API,可以帮助我们快速实现 IM 的功能。
某信 IM Flutter SDK:https://github.com/easemob/im_flutter_sdk
某易 IM Flutter SDK:https://doc.yunxin.163.com/messaging/guide/Dg5NjI4MDg?platform=flutter
某讯 IM Flutter SDK:https://www.tencentcloud.com/document/product/1047/45907
其中 腾讯的 IM Flutter SDK 支持的端会比较多一些,包括 iOS、Android、Web、Windows、MacOS 等等。
SDK 也设计得比较灵活,你可以使用它提供的 UI
当然也可以自己来写,当然已很多人使用 Flutter 的初衷来看,我感觉多半是会自己来写 UI 的。
另外,腾讯的 IM 除了基本的聊天能力之外,还有一些高级功能,比如群聊
、语音通话
、视频通话
、发送文件
等等。当然离线推送
、消息撤回
、消息已读等等功能也都是具备的。
比如,发送消息:
import 'package:tencent_cloud_chat_sdk/tencent_cloud_chat_sdk.dart';
V2TimValueCallback<V2TimMsgCreateInfoResult> createMessage =
await TencentImSDKPlugin.v2TIMManager
.getMessageManager()
.createTextMessage(text: "The text to create");
String id = createMessage.data!.id!; // The message creation ID
V2TimValueCallback<V2TimMessage> res = await TencentImSDKPlugin.v2TIMManager
.getMessageManager()
.sendMessage(
id: id, // Pass in the message creation ID to
receiver: "The userID of the destination user",
groupID: "The groupID of the destination group",
);
当然,除了像腾讯这样的 IM SDK 之外,还有一些第三方的 UI 库,比如:
Flutter Chat UI:https://github.com/flyerhq/flutter_chat_ui
这个就是一个比较小而美的聊天 UI 库,你可以直接使用它提供的 UI,也可以根据自己的需求来进行定制。人家也说了,IM 不仅仅是 UI,但是也离不开 UI,所以,他们将这两方面做了解耦,目的就是减少重复的工作,当然,他们的 UI 可不仅仅提供了 Flutter 的版本,还是有 React Native 的版本的。
这个对应的 UI库提供了一个开源的 IM 后端实现,是基于 Firebase的,因此,这玩意可能在某些区域不太好使。
另外这个 UI 库提供的消息类型也比较单一哈,目前就支持了文本
、图片
、文件
三个类型,不过好在人家是开源的,你需要扩展那还不是分分钟的事情。
在 Flutter 上实现一个 IM 功能,如果从零开始整,带价其实挺大的,一个基本可用的 IM 也至少需要包含以下几个模块:
这些功能都是比较基础的,如果要实现一个完整的 IM 功能,还需要考虑更多的功能,比如群聊、视频通话、等等。
一些建议
IM 已经是很成熟的产品了,如果你只是想实现一个简单的 IM 功能,那么推荐使用大厂的 IM SDK,然后自己定制化一下 UI ,甚至直接使用IM SDK 自带的 UI 都 ok,这样可以节省比较多的时间,同时极大程度上保证了消息收发的稳定性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。