聊天室管理
环信微信小程序 SDK 支持聊天室管理功能的集成,集成后可以进行如下操作:
- 获取聊天室列表
- 加入聊天室
- 退出聊天室
- 发送消息
- 接收及处理消息
- 聊天室相关回调
通过这些操作,可以组合帮助您完成多种场景下的 IM 需求。
获取聊天室列表
调用getChatRooms
函数获取聊天室列表,示例如下:
// 列出所有聊天室,支持分页查询
var listRooms = function () {
var option = {
apiUrl: 'https://a1.easemob.com',
pagenum: 1, // 页数
pagesize: 20, // 每页个数
success: function (list) {
console.log(list);
},
error: function () {
console.log('List chat room error');
}
};
conn.getChatRooms(option);
}
API
加入聊天室
调用joinChatRoom
加入聊天室,示例如下:
var joinRoom = function () {
// 加入聊天室
conn.joinChatRoom({
roomId: 'chatroom id' // 聊天室id
});
};
API
退出聊天室
调用quitChatRoom
退出聊天室,示例如下:
var quitRoom = function () {
// 退出聊天室
conn.quitChatRoom({
roomId: 'chatroom id' // 聊天室id
});
}
API
发送消息
见发送消息。
聊天室禁言
开启和关闭全员禁言
owner和管理员可以开启和关闭全员禁言。
//聊天室中禁言所有成员
var options = {
chatRoomId: "chatRoomId", //聊天室id
success: function (resp) {},
error: function(e){}
};
conn.disableSendChatRoomMsg(options);
//聊天室中解除所有成员禁言
conn.enableSendChatRoomMsg(options)
API
白名单管理
可以将用户添加到白名单中,用户白名单在管理员开启了全员禁言时生效,可以运行白名单用户发出消息。 另外可以将用户移出白名单,检查自己是否在白名单中以及获取白名单列表。
//添加用户到白名单
var options = {
chatRoomId: "chatRoomId", //聊天室id
users: ["user1", "user2"], //成员id列表
success: function (resp) {},
error: function(e){}
};
conn.addUsersToChatRoomWhitelist(options);
//将用户从白名单移除
var options = {
chatRoomId: "chatRoomId", //群组id
userName: "user", //要移除的成员
success: function (resp) {},
error: function(e){}
}
conn.rmUsersFromChatRoomWhitelist(options)
//从服务器获取白名单成员列表
var options = {
chatRoomId: "chatRoomId", //聊天室id
success: function (resp) {},
error: function(e){}
}
conn.getChatRoomWhitelist(options)
//查询成员是否是白名单用户,操作权限:app admin可查询所有用户;app user可查询自己
var options = {
chatRoomId: "chatRoomId", //聊天室id
userName: "user", //要查询的成员
success: function (resp) {},
error: function(e){}
}
conn.isChatRoomWhiteUser(options)
API
示例中使用到的 API
接收及处理消息
- 群聊接收及处理消息同单聊;
- 消息体与单聊消息根据 message 的 type 进行区分;
- 单聊为:chat,群聊为:groupchat,聊天室为:chatroom;
- 根据消息的类型进行不同处理即可。
聊天室相关回调
conn.listen({
onPresence: function ( message ) {
handlePresence(message);
}
});
var handlePresence = function ( e ) {
/*e.type === 'memberJoinChatRoomSuccess' // 加入成功
e.type === 'deleteGroupChat' // 聊天室被删除
e.type === 'joinChatRoomFailed' // 加入失败*/
};