融云-群组的概念以及一些使用的业务场景。

群组的概念

指两个以上用户一起进行聊天,与讨论组不同的是,参与群组聊天的群成员 ID 集合由您的 App 提供并维系,融云只负责将消息传达给群聊中的所有用户,退出聊天界面或者离线后可以收到推送通知。支持最大至 3000 人的大型社群需求。

融云群组的概念:跟 QQ 群一样,有群主,可以设置管理员,用户可以根据群组 ID 来搜这个群,管理员来确认是否加入这个人;可以退出群组,退出群组不需要管理员批准;融云群组最多支持 3000 人在一个群里。

下面是常见的几个问题,如果你的应用没有这种要求,可以不看。

问题 1: 客户端如何创建群组?

客户端创建群组是由 App 的 Server 去请求 融云的 Server,由融云的 Server 返回一个 群组 ID 给 App 的 Server,App Server 将融云 Server 返回的群组 ID 返回给 App 客户端。

融云 API 地址文档:创建群组

对于客户端开发的人员来说,创建群组只需要与你们 Server 交互就行。

创建群组 需要注意几点:

  1. 在客户端想绕开你们 Server 直接使用 融云的 SDK 创建群组这是不可能的,融云移动端 SDK 也没有提供 创建群组的方法

  2. 创建群组的这个人,默认已经加入到这个群组,客户端是否需要调用 joinGroup 方法取决于你们 Server 是否调用了 加入群组的方法,看问题 2

问题 2: 客户端如何加入群组?

在客户端加入群组,需要你的 客户端 与你们的 Server 进行交互。当你要加入群组的时候,首先,你调用你们 Server 提供给你加入群组的接口,这么做是为了让你们的 Server 实时的知道当前群内有多少人,因为这个群组所有数据都是由你们自己维护的。然后,你需要调用加入群组方法。

Server 端 API 文档:加入群组

问题 3: 如何退出群组?

加入和退出是一样的逻辑,不再重复。

需要注意的是:如果你的客户端希望退出群组的同时,删除该群组对应的会话,那需要你的客户端在成功退出群组后,调用 removeConversation 来删除会话。

问题 4: 如何同步群组信息?

首先解释一下同步群组信息是干嘛用的,举例:你现在已经加入了 “融云 1”,“融云 2”,“融云 3” 这 3 个群,但是你调用同步群组信息的时候,同步的是 “融云 1”,“融云 2” 这两个群,这时候你会从 “融云 3” 这个群里面退出。如果你已经加入了"融云 1",“融云 2” 这 2 个群,但是你调用同步群组信息的时候,同步的是 “融云 1”,“融云 2” ,“融云 3” 这 3 个群,这时候你会自动加入 “融云 3” 这个群。

Server 端和 客户端都有 这个 Api。

问题 5: 有人搜索群组 ID ,申请加入这个群的时候,我如何来同意是否添加这货入群?

如果你的 App 内有搜索群组的功能,当你搜到一个你感兴趣的群组时,你会申请加入这个群组,你可以利用融云的自定义消息实现这个功能(仅仅是一个参考,还有更多实现方式,按照你们的产品需求走就可以,别较真)。这时的流程为:当你想加入这个群组时,你此时需要先拿到这个群组的群主和管理员 userId,以及这个群组 ID。你自定义一条加入群组的消息类型,当群主和管理员收到这条自定义加入群组消息时弹出一个对话框,确认是否添加你为群成员

问题 6: 群组中群主管理员如何设定?

这块的逻辑需要自行维护,对于融云来说,客户发送消息的依据是群组 ID,没有管理员和群主的概念,如何设定群内的规则需要看具体的产品设计和实现。

问题 7: 创建完群组后,群组内的群人数以及每个人的用户信息从哪里得到?

群组都是在用户自己的 Server 上维护的,群组里面的所有信息,你自己都可以得到,所以群组内群人数以及每个人的用户信息在你们的 Server 上都可以拿到。