群组

群组或家族将一群用户聚集在一起,形成一个小社区或团队。

群组由超级管理员、管理员和成员组成。群组可以是公开的,也可以是私人的,这决定了当用户列出群组时,它是否出现在结果中。私人群组类似于WhatsApp群组的运作方式。只有当群组的一位管理员邀请用户加入时,才能添加用户。

群组也有最大成员数。如果群组是由客户端创建的,则默认设置为100;如果群组是通过代码运行时程序创建的,那么可以超过此值。

群组用户有四种状态:

代码用途
0超级管理员任何群组都必须拥有至少一位超级管理员。超级管理员拥有管理员的所有权限,另外还可以删除群组和升级管理员成员。
1管理员可以有一个或多个管理员。管理员可以更新群组,也可以接受、踢出、升级、降级、封禁或添加成员。
2成员群组常规成员。无法接受新用户的加入请求。
3加入请求新用户发来的新的加入请求。这不会被计入群组成员的最大数量。

列出和过滤群组 #

可以使用许多可选过滤器列出群组:name, lang_tag, open 和(值为) members。如果省略所有过滤器,操作将列出所有现有群组。

过滤器name不区分大小写,与其余过滤器相互排斥。它可以帮助用户按名称查找特定的群组,并支持使用%通配符匹配后缀部分。例如,查找前缀为“Persian”的群组将被写为persian%名称过滤器。

剩余的过滤器可以以任何方式组合或省略,例如,我们可以使用openmembers过滤器最多列出所有拥有指定数量成员的开放群组。

群组列表的消息响应包含一个游标。游标可用于快速检索下一组结果。

加入群组 #

用户找到想要加入的群组时,可以请求成为成员。公开群组不需要任何就可以加入,而私人群组需要超级管理员或管理员接受用户才可加入。

当用户加入或退出群组时,事件消息会被添加到聊天历史记录中。成员可以轻松查看群组内的变动。

群组中的用户可以加入群组聊天并查看群组聊天的历史消息

用户在被添加到群组时将会在应用程序内收到通知。在私人群组中,当用户请求加入时,管理员或超级管理员将收到通知。

列出用户群组 #

每位用户都可以列出自己作为成员或作为管理员或超级管理员加入的群组。另外,还可以列出自己已经发送加入请求但尚未被接受的群组。

列出群组成员 #

用户可以列出所在群组的所有成员。其中包括已请求加入私人群组但尚未被接受的其他用户。

创建群组 #

可以使用名称和其他可选字段创建群组。这些可选字段在用户列出和过滤群组时使用。创建群组的用户是群组的所有者和超级管理员。

您还可以使用服务器端代码创建群组。创建群组时,若必须有其他一些记录或特征,这可能很有用。

群组元数据 #

您可以在group.metadata中存储群组的其他字段。这有助于共享您希望公开给用户的数据,并提供可用于列出和过滤群组的其他详细信息。

元数据还可用于在现有群组功能的基础上创建新功能

每个群组的元数据限制在16KB,并且只能通过脚本运行进行设置。

以下示例显示了您如何使用群组元数据来扩展Nakama中群组成员的权限和增加角色(如最佳实践指南中所述)。具体来说,我们将引入保镖角色的概念,群组成员必须拥有该角色才能踢出群组中的另一名成员。

更新群组 #

创建群组后,群组管理员可以更新可选字段。

更新群组规模 #

更新群组规模操作只能通过服务器授权执行。

退出群组 #

用户可以退出群组,退出后无法再加入群组聊天或读取消息历史记录。如果用户为超级管理员,只有当群组中除此位用户外至少有一位超级管理员时才可以退出群组。

任何用户退出群组时都会在群组聊天中生成事件消息,其他成员可以读取该消息。

管理群组 #

每个群组由一位或多位超级管理员或管理员管理。这些用户是具有更改可选字段、接受或拒绝新成员、移除成员或其他管理员、将其他成员升级为管理员权限的成员。

每个群组必须拥有至少一位超级管理员。群组的最后一位超级管理员必须要将另一位成员升级为超级管理员才可以退出群组。

接受新成员 #

用户加入私人群组时会创建加入请求,等待管理员接受或拒绝用户。超级管理员或管理员可以接受用户加入群组。

用户在被添加到群组时将会在应用程序内收到通知。在私人群组中,管理员将收到加入请求通知。

要拒绝用户加入群组,您应该将他们踢出

升级成员 #

一位管理员可以将群组的另一位成员升级为管理员。这将同样赋予此成员管理群组的权限。一个群组可以有一个或多个管理员。

降级成员 #

一位管理员可以将群组的另一位成员降一个等级。这将撤消成员的当前权限,并为成员分配降级后可用的权限。降级不会影响群组中已处于最低等级的成员。

踢出成员 #

管理员或超级管理员可以将成员踢出群组。被移除的用户可以重新加入,除非用户被封禁,或者群组是私人群组,必须由管理员接受重新加入请求。

用户被从一个群组中移除不会对用户加入其它群组造成影响。有时,需要将恶意用户踢出群组,并被禁止重新加入群组整个服务器。这将使用户无法连接到服务器进行任何互动。

封禁群组成员 #

管理员或超级管理员可以封禁成员加入群组。用户被踢出群组后,无法重新加入,甚至无法请求重新加入。

可以通过Nakama控制台或运行时代码功能解除对用户的封禁。

移除群组 #

群组只能由超级管理员移除,移除群组将解散所有成员。群组被移除后,可以重新使用这个群组的名称创建新的群组

Related Pages