====== 群组管理 ======
----
===== 获取群组列表 =====
调用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);
};
===== 发送消息 =====
见[[start:400webimintegration:30singlechat#发送消息|发送消息]]。
===== 接收及处理消息 =====
群聊接收及处理消息同单聊,消息体与单聊消息根据 message 的 type 进行区分,单聊为:chat,群聊为:groupchat,聊天室为:chatroom。根据消息的类型进行不同处理即可。
----
上一页:[[start:400webimintegration:contact_management|好友管理]]
下一页:[[start:400webimintegration:41chatroom|聊天室管理]]