前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flutter 上如何轻松实现 IM 功能

Flutter 上如何轻松实现 IM 功能

原创
作者头像
brzhang
发布2024-05-16 19:45:14
2180
发布2024-05-16 19:45:14
举报
文章被收录于专栏:玩转全栈玩转全栈

在 Flutter 上实现 IM(即时通讯) 的功能,我们可以使用第三方的 SDK,比如腾讯云 IM等等。这些 SDK 都提供了丰富的 API,可以帮助我们快速实现 IM 的功能。

第三方 SDK 的选择

某信 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 除了基本的聊天能力之外,还有一些高级功能,比如群聊语音通话视频通话发送文件等等。当然离线推送消息撤回、消息已读等等功能也都是具备的。

比如,发送消息:

代码语言:javascript
复制
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",
          );

聊天 UI 相关的

当然,除了像腾讯这样的 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第三方 SDK 的选择
  • 聊天 UI 相关的
  • 个人看法
相关产品与服务
即时通信 IM
即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档