When creating a group, you have the choice of creating the group from the client SDK and having Hyphenate store all of the group info, or creating it from your app server and storing all group info there.
- Data maintained by the Hyphenate server: groupID, owner, member, maxUser.
- Other data maintained by the app server.
Create a group using the appropriate Hyphenate client SDK, then save all the group data (GroupID, Group profile photo, group name, label, etc.) to your application server.
In this case, the group data is created and maintained by the app server.
Pros and Cons of Solution 2
Pros: There is no need to access multiple servers when the mobile client user is creating a group. All the data is saved on the client server, which makes the data easier to maintain than saving in multiple servers.
Cons: 'Join' and 'leave' requests can only be achieved by a command message. Solution II is less convenient than directly calling the Hyphenate API as described in Solution I. If we use the Hyphenate client SDK to add or remove users, it might lead to data inconsistency between the client server and the Hyphenate server.