频道
在 Game Chat 中,频道是用户可以以小组形式进行交流的虚拟空间。通过频道,用户可以根据特定主题或目的共享信息、增强团队合作以及组织沟通。频道是提高工作效率、集中管理特定小组内沟通的有用工具。以下是 Game Chat 频道功能的详细说明。
频道的主要功能
小组沟通 :您可以创建频道与特定小组的成员进行交流。这适用于项目团队、部门、俱乐部等各种形式的小组。
消息和文件共享 :在频道内,您可以轻松共享文本消息、图片、视频、文档等多种形式的文件。
实时更新 :频道内的所有活动实时更新,确保所有参与者都能获取最新信息。
管理员控制 :频道的创建者或管理员拥有更改频道设置、添加/删除用户的权限。
通话和视频会议功能 :某些频道支持语音通话或视频会议,使成员之间的对话更加高效。
通知设置 :用户可以为每个频道设置通知,以确保不会错过重要消息。
搜索功能 :可以轻松搜索频道内的对话或文件,快速找到所需的信息。
频道管理
创建频道 :用户可以创建新的频道以满足特定目的,并设置频道名称、描述、成员等信息。
频道邀请 :频道的管理员可以邀请其他用户加入频道。被邀请的用户可以接受或拒绝邀请。
成员管理 :管理员可以设置频道成员的权限或从频道中移除成员。
安全
数据安全 :频道内的所有数据都经过加密传输,并安全地存储在服务器上。
隐私保护 :频道内共享的信息仅在频道成员之间可访问,并受到保护,防止外部泄露。
利用 Game Chat 的频道功能,您可以顺畅地进行组织内或个人之间的沟通,并有效地管理信息。这些特性在管理大型组织或各种项目时尤其有用。
频道创建
所有对话都需要创建频道并加入频道才能正常进行聊天。以下是创建和订阅频道的方法指南。
Copy await nc . createChannel ( new NBaseSDK . Channel
{
name = "New Channel" ,
type = [TYPE] , // PUBLIC or PRIVATE
customField = [CustomField]
});
参考
为了安全考虑,建议通过服务器而不是客户端创建频道。
频道订阅
加入您感兴趣的频道(参与房间)。一旦加入的频道,在取消订阅之前,即使重新连接,也会自动参与其中。
Copy Hashtable option = new Hashtable
{
{ "language" , "en" } // 自动翻译时,除了所需的选项外,还可以添加各种其他选项。
};
await nc . subscribe ([CHANNEL_ID] , option);
取消频道订阅
取消对该频道的订阅。您将不再收到该频道的消息。
Copy await nc . unsubscribe ([CHANNEL_ID]);
参与者列表
(对于特定频道)可以获取参与者列表。
Copy Hashtable filter = new Hashtable
{
{ "channel_id" , channelId }
};
Hashtable sort = new Hashtable
{
{ "created_at" , - 1 }
};
Hashtable option = new Hashtable
{
{ "offset" , 0 } ,
{ "per_page" , 10 }
};
var subscriptions = await nc . getSubscriptions (filter , sort , option);
foreach ( var subscription in subscriptions . edges )
{
string id = subscription . node . id . ToString ();
Console . WriteLine ( "[CloudChatSample] id={0}" , id);
}
应用示例
如果仅需获取特定频道中在线的用户列表,请在过滤器中将 online 设置为 true。
Copy Hashtable filter = new Hashtable
{
{ "channel_id" , [CHANNEL_ID] } ,
{ "online" , true }
};
Hashtable sort = new Hashtable
{
{ "created_at" , - 1 }
};
Hashtable option = new Hashtable
{
{ "offset" , 0 } ,
{ "per_page" , 10 }
};
var subscriptions = await nc . getSubscriptions (filter , sort , option);
频道订阅
频道信息
获取频道数据
要以列表形式获取项目的频道数据,请使用以下代码。
Copy Hashtable filter = new Hashtable
{
{ "state" , true }
};
Hashtable sort = new Hashtable
{
{ "created_at" , - 1 }
};
Hashtable option = new Hashtable
{
{ "offset" , 0 } ,
{ "per_page" , 10 }
};
var channels = await nc . getChannels (filter , sort , option);
foreach ( var channel in channels . edges )
{
string id = channel . node . id . ToString ();
Console . WriteLine ( "[CloudChatSample] id={0}" , id);
}
单个频道
可以获取单个频道的信息。
Copy Channel channel = await nc . getChannel (id);
频道内用户邀请
对于 PRIVATE 频道,邀请想要加入的用户。
Copy await nc . addUsers (newChannelId , new string [] { "ID" , "ID" });
频道内用户删除
对于 PRIVATE 频道,删除已参与的用户。
Copy await nc . removeUsers (channelId , new string [] { "ID" , "ID" });
频道内用户封禁
在频道内封禁用户。仅具备频道创建权限的用户或全体管理员可以使用此功能。
Copy Hashtable option = new Hashtable
{
{ "timeout" , [封禁时间(秒)] } ,
{ "reason" , [封禁原因] }
};
await nc . banUser (channelId , userId , options);
解除频道内用户封禁
解除对频道内被封禁用户的封禁。只有具备频道创建权限的用户或全体管理员可以使用此功能。
Copy await nc . unbanUser (channelId , userId);
删除频道
删除指定的频道(可以删除一个或多个频道)。
Copy Channel channel = await nc . deleteChannel ([CHANNEL_ID]);
修改频道
更新频道信息。
Copy Channel channel = await nc . updateChannel ([CHANNEL_ID] , new NBaseSDK . Channel
{
name = "Update Channel" ,
type = [TYPE] , // PUBLIC or PRIVATE
customField = [CustomField]
});