====== 群组管理 ====== ---- ===== 获取群组列表 ===== 调用listRooms函数获取当前登录用户加入的群组列表,示例如下。 // 列出所有群组 var listGroups = function () { var option = { success: function (rooms) { console.log(rooms); }, error: function () { console.log('List groups error'); } }; conn.listRooms(option); }; ===== 查询群组成员 ===== 根据roomId查询群组成员。 // 查询群组成员 // 查询出来的member的结构为{affiliation: 'member', jid: 'easemob-demo#chatdemoui_wjy6@easemob.com'} // 注意,这里的jid格式,成员的用户名是chatdemoui_之后,@easemob.com之前的字符串,如本例的wjy6是用户名 var queryRoomMember = function () { var member = ''; conn.queryRoomMember({ roomId: '114715680632209992', success: function (members) { for (var o in members) { member = members[o]; console.log(member); } } }); }; ===== 获取群组黑名单 ===== // 获取群组黑名单 var getGroupBlackList = function () { var option = { roomId: '1480758709661', success: function (list) { console.log('Get group black list: ', list); }, error: function () { console.log('Get group black list error.'); } }; conn.getGroupBlacklist(option); }; ===== 创建群组 ===== 创建群组,并设置群组属性的示例如下。 // 建立一个群组 var createGroup = function () { var option = { subject: 'groupName', // 群名称 description: 'create a group test', // 群简介 members: ['wjy6', 'asdfghj'], // 以数组的形式存储需要加群的好友ID optionsPublic: true, // 允许任何人加入 optionsModerate: false, // 加入需审批 optionsMembersOnly: false, // 不允许任何人主动加入 optionsAllowInvites: false // 允许群人员邀请 }; conn.createGroup(option); } 再在回调函数中的onPresence中添加: If( message.type == 'createGroupACK'): conn.createGroupAsync({ from: message.from, success: function(option){ console.log('Create Group Succeed'); } }); ===== 获取群组信息 ===== 应用场景:判断用户是否为该群管理员。 // 获取群组信息 var queryGroupInfo = function () { conn.queryRoomInfo({ roomId: '1480747027186', // settings 表示入群的权限,具体值待定 // members[0]里面包含群主信息,其结构为{affiliation: 'owner', jid: appKey + '_' + username + '@easemob.com'} // jid中的username就是群主ID // fields的结构为: /* { affiliations: '2', description: '12311231313', // 群简介 maxusers: '200', // 群最大成员容量 name: '123', // 群名称 occupants: '2', owner: 'easemob-demo#chatdemoui_mengyuanyuan' // 群主jid } */ success: function (settings, members, fields) { console.log('settings: ', settings); console.log('members: ', members); console.log('fields: ', fields); }, error: function () { console.log('Error!'); } }); }; ===== 修改群组信息 ===== 只有群组的管理员可以修改群组名称和群组简介,示例如下。 注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示修改信息按钮。 // 修改群信息 var changeGroupInfo = function () { var option = { roomId: '1480756943693', subject: 'ChangeTest', // 群组名称 description: 'Change group information test', // 群组简介 success: function () { console.log('Change Group Names Success!'); } }; conn.changeGroupSubject(option); }; ===== 将好友加入群组 ===== 管理员可以将好友加入群组。 // 加好友入群 var addGroupMembers = function () { var option = { list: ['asdfghj', 'wjy6'], roomId: '1480841456167' }; conn.addGroupMembers(option); }; ===== 将成员踢出群组 ===== 只有群组的管理员有权限将成员踢出群组,踢出群组的同时,将该群成员拉入群组黑名单。 注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示踢人按钮。 // 将成员踢出群(同将群成员拉入群黑名单) var addToGroupBlackList = function () { var option = { affiliation: 'owner', // 写死 roomId: '1480756943693', // 群组ID success: function () { console.log('add to black list succeed'); }, to: 'asdfghj' // 需要删除的成员ID }; conn.addToGroupBlackList(option); }; ===== 将好友移出群组黑名单 ===== 将好友移出群组黑名单后,该好友依然是群组成员。 // 将好友从黑名单移除 var removeFromGroupBlackList = function () { var option = { roomId: '1480841456167', to: 'wjy6', success: function () { console.log('Remove from black list success!'); } }; conn.removeGroupMemberFromBlacklist(option); }; ===== 解散群组 ===== 只有群组的管理员有权限将成员踢出群组。群组解散后,所有群成员均退出该群。 注意:在获取群组时候就可以获取群管理员的ID,从而前端可决定是否显示解散按钮。 // 解散一个群组 var destroyGroup = function () { var option = { reason: 'Test Destroy Group', roomId: '1480840256052', success: function () { console.log('Destroy group success!'); } }; conn.destroyGroup(option); }; ===== 退出群组 ===== 群成员可以主动退出群组,示例如下。 // 成员主动退出群 var leaveGroup = function () { var option = { to: 'asdfghj', roomId: '1480747027186', success: function () { console.log('You leave room succeed!'); }, error: function () { console.log('Leave room faild'); } }; conn.leaveGroupBySelf(option); }; ===== 发送消息 ===== 见[[im:400webimintegration:30singlechat#发送消息|发送消息]]。 ===== 接收及处理消息 ===== 群聊接收及处理消息同单聊,消息体与单聊消息根据 message 的 type 进行区分,单聊为:chat,群聊为:groupchat,聊天室为:chatroom。根据消息的类型进行不同处理即可。 ---- 上一页:[[start:400webimintegration:contactmanagement|好友管理]] 下一页:[[start:400webimintegration:41chatroom|聊天室管理]]