====== 环信超级社区 (Circle) 快速开始 ======
===== 集成准备 =====
使用 Circle 前,确保你已经集成环信即时通讯 IM Web SDK 4.1.4-beta,详见 [[http://docs-im-beta.easemob.com/document/web/quickstart.html|环信即时通讯 IM Web 快速开始]]。
===== 技术原理 =====
用户需加入一个社区,选择加入社区或社区下频道分组中的频道,然后才能在频道中发送消息。
发送和接收消息的逻辑如下:
- 发送方获取社区 ID;
- 发送方获取频道 ID;
- 发送方通过 ''%%send%%'' 发送消息;
- 接收方通过 ''%%addEventHandler%%'' 注册监听器接收各类消息的回调。
===== 实现方法 =====
==== 获取指定的社区 ====
你可以通过三种方式获取指定的社区 ID:
* 创建社区;
* 加入一个现有社区;
* 获取已加入的社区列表。
=== 创建社区 ===
你可以调用 ''%%createServer%%'' 方法创建一个社区:
let options = {
name: 'server name',
icon: 'image url',
description: 'a test server',
ext: '',
isPublic: true,
backgroundUrl: '',
}
WebIM.conn.createServer(options).then(res => {
console.log(res)
})
=== 加入一个现有社区 ===
你可以调用 ''%%joinServer%%'' 方法加入一个现有社区:
WebIM.conn.joinServer({serverId: 'serverId'}).then(res=>{
console.log(res)
})
=== 获取已加入的社区列表 ===
你可以调用 ''%%getJoinedServers%%'' 方法获取已加入的社区列表:
WebIM.conn.getJoinedServers({pageSize: '10',cursor: ''}).then(res=>{
console.log(res)
})
==== 获取指定的频道 ====
你可以通过三种方式获取指定的频道 ID:
* 创建频道;
* 加入一个现有频道;
* 获取已加入的频道列表;
* 获取社区中的频道列表。
=== 创建频道 ===
你可以调用 ''%%createChannel%%'' 方法创建频道:
let options = {
serverId: 'serverID',
isPublic: true,
name: 'channelName',
description: 'this is my channel',
ext: 'ext',
maxusers: 8,
mode: 0,
categoryId: 'categoryId',
rtcChannelId: 'rtcChannelId',
}
WebIM.conn.createChannel(options).then(res => {
console.log(res)
})
=== 加入一个现有频道 ===
你可以调用 ''%%joinChannel%%'' 方法加入频道:
WebIM.conn.joinChannel({serverId: 'serverId', channelId: 'channelId'}).then(res => {
console.log(res)
})
=== 获取社区的公开频道列表 ===
你可以调用 ''%%getPublicChannels%%'' 方法获取社区下的公开频道列表:
let options = {
serverId: 'serverId',
pageSize: 20,
cursor: ''
}
WebIM.conn.getPublicChannels(options).then(res => {
console.log(res)
})
=== 获取社区的私密频道列表 ===
你可以调用 ''%%getPrivateChannels%%'' 方法获取社区下所有私密频道的列表:
let options = {
serverId: 'serverId',
pageSize: 20,
cursor: ''
}
WebIM.conn.getPrivateChannels(options).then(res => {
console.log(res)
})
此外,你还可以调用 ''%%getCategoryPublicChannels%%'' 或 ''%%getCategoryPrivateChannels%%'' 方法获取指定频道分组下的公开频道列表或私密频道列表。
==== 发送和接收一条频道消息 ====
在频道中发送和接收消息,你可以参考 [[http://docs-im-beta.easemob.com/document/web/message_send_receive.html|发送和接收消息]]。
=== 发送一条频道消息 ===
你可以调用 ''%%create%%'' 方法构建一条文本消息并在指定频道中发送:
// 在指定频道发送文本消息。
function sendChannelText() {
let option = {
chatType: 'groupChat', // 会话类型,设置为群聊。
type: 'txt', // 消息类型。
to: 'channelId', // 消息接收方(频道 ID)。
msg: 'message content' // 消息内容。
}
let msg = WebIM.message.create(option);
WebIM.conn.send(msg).then(() => {
console.log('send text message Success');
}).catch((e) => {
console.log("Send text message error");
})
};
=== 接收一条频道消息 ===
你可以通过 ''%%addEventHandler%%'' 注册监听器接收文本消息的回调。
WebIM.conn.addEventHandler('messageHandler', {
// 收到文本消息。
onTextMessage: function ( message ) {
console.log(message)
}
});