Manage chat groups
Chat groups enable real-time messaging among multiple users.
This page shows how to use the Chat SDK to create and manage a chat group in your app.
Understand the tech
The Chat SDK provides the Group
, GroupManager
, and GroupChangeListener
classes for chat group management, which allows you to implement the following features:
- Create and destroy a chat group
- Join and leave a chat group
- Retrieve the member list of a chat group
- Block and unblock a chat group
- Listen for the chat group events
Prerequisites
Before proceeding, ensure that you meet the following requirements:
- You have initialized the Chat SDK. For details, see SDK quickstart.
- You understand the call frequency limits of the Chat APIs supported by different pricing plans as described in Limitations.
- You understand the number of chat groups and chat group members supported by different pricing plans as described in Pricing Plan Details.
Implementation
This section describes how to call the APIs provided by the Chat SDK to implement chat group features.
Create and destroy a chat group
Users can create a chat group and set the chat group attributes such as the name, description, group members, and reasons for creating the group. Users can also set the GroupOptions
parameter to specify the size and type of the chat group. Once a chat group is created, the creator of the chat group automatically becomes the chat group owner.
Only chat group owners can disband chat groups. Once a chat group is disbanded, all members of that chat group receive the onGroupDestroyed
callback and are immediately removed from the chat group. All local data for the chat group is also removed from the database and memory.
Refer to the following sample code to create and destroy a chat group:
Join and leave a chat group
Users can request to join a public chat group as follows:
- Call
getPublicGroupsFromServer
to retrieve the list of public groups by page. Users can obtain the ID of the group that they want to join. - Call
joinGroup
to send a join request to the chat group:- If the type of the chat group is set to
GroupStylePublicJoin
, the request from the user is accepted automatically and the other chat group members receive theonMemberJoined
callback. - If the type of the chat group is set to
GroupStylePublicNeedApproval
, the chat group owner and chat group admins receive theonRequestToJoinReceived
callback and determine whether to accept the request from the user.
- If the type of the chat group is set to
Users can call leaveGroup
to leave a chat group. Once a user leaves the group, all the other group members receive the onMemberExited
callback.
Refer to the following sample code to join and leave a chat group:
Retrieve the member list of a chat group
- When a group has less than 200 members, you can call the
getGroupFromServer
method to retrieve the group member list that contains the group owner, admins, and regular members.
- When a group has more than 200 members, you can first call the
getGroupFromServer
method to get the group member list that contains the group owner and admins and then call thefetchGroupMembers
method to obtain the list of regular group members.
Block and unblock a chat group
All chat group members can block and unblock a chat group. Once a member block a chat group, they no longer receive messages from this chat group.
Refer to the following sample code to block and unblock a chat group:
Listen for chat group events
To monitor the chat group events, users can listen for the callbacks in the GroupManager
class and add app logics accordingly. If a user wants to stop listening for the callbacks, make sure that the user removes the listener to prevent memory leakage.
Refer to the following sample code to listen for chat group events: