频道

频道

在 Game Chat 中,频道是用户可以以小组形式进行交流的虚拟空间。通过频道,用户可以根据特定主题或目的共享信息、增强团队合作以及组织沟通。频道是提高工作效率、集中管理特定小组内沟通的有用工具。以下是 Game Chat 频道功能的详细说明。

频道的主要功能

  1. 小组沟通:您可以创建频道与特定小组的成员进行交流。这适用于项目团队、部门、俱乐部等各种形式的小组。

  2. 消息和文件共享:在频道内,您可以轻松共享文本消息、图片、视频、文档等多种形式的文件。

  3. 实时更新:频道内的所有活动实时更新,确保所有参与者都能获取最新信息。

  4. 管理员控制:频道的创建者或管理员拥有更改频道设置、添加/删除用户的权限。

  5. 通话和视频会议功能:某些频道支持语音通话或视频会议,使成员之间的对话更加高效。

  6. 通知设置:用户可以为每个频道设置通知,以确保不会错过重要消息。

  7. 搜索功能:可以轻松搜索频道内的对话或文件,快速找到所需的信息。

频道管理

  • 创建频道:用户可以创建新的频道以满足特定目的,并设置频道名称、描述、成员等信息。

  • 频道邀请:频道的管理员可以邀请其他用户加入频道。被邀请的用户可以接受或拒绝邀请。

  • 成员管理:管理员可以设置频道成员的权限或从频道中移除成员。

安全

  • 数据安全:频道内的所有数据都经过加密传输,并安全地存储在服务器上。

  • 隐私保护:频道内共享的信息仅在频道成员之间可访问,并受到保护,防止外部泄露。

利用 Game Chat 的频道功能,您可以顺畅地进行组织内或个人之间的沟通,并有效地管理信息。这些特性在管理大型组织或各种项目时尤其有用。

频道创建

所有对话都需要创建频道并加入频道才能正常进行聊天。以下是创建和订阅频道的方法指南。

await nc.createChannel(new NBaseSDK.Channel
{
    name = "New Channel",
    type =[TYPE],    // PUBLIC or PRIVATE
    customField = [CustomField]
});

参考

为了安全考虑,建议通过服务器而不是客户端创建频道。

频道订阅

加入您感兴趣的频道(参与房间)。一旦加入的频道,在取消订阅之前,即使重新连接,也会自动参与其中。

Hashtable option = new Hashtable
{
    { "language", "en" }    // 自动翻译时,除了所需的选项外,还可以添加各种其他选项。
};
await nc.subscribe([CHANNEL_ID], option);

取消频道订阅

取消对该频道的订阅。您将不再收到该频道的消息。

await nc.unsubscribe([CHANNEL_ID]);

参与者列表

(对于特定频道)可以获取参与者列表。

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);
}
  • Parameters

  • Options

应用示例

如果仅需获取特定频道中在线的用户列表,请在过滤器中将 online 设置为 true。

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);

频道订阅

  • Subscription Data Class

频道信息

  • Channel Data Class

获取频道数据

要以列表形式获取项目的频道数据,请使用以下代码。

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);
}
  • Parameters

  • Options

单个频道

可以获取单个频道的信息。

Channel channel = await nc.getChannel(id);

频道内用户邀请

对于 PRIVATE 频道,邀请想要加入的用户。

await nc.addUsers(newChannelId, new string[] { "ID", "ID" });

频道内用户删除

对于 PRIVATE 频道,删除已参与的用户。

await nc.removeUsers(channelId, new string[] { "ID", "ID" });

频道内用户封禁

在频道内封禁用户。仅具备频道创建权限的用户或全体管理员可以使用此功能。

Hashtable option = new Hashtable
{
    { "timeout", [封禁时间(秒)] },
    { "reason", [封禁原因] }
};
await nc.banUser(channelId, userId, options);
  • Options Data Class

解除频道内用户封禁

解除对频道内被封禁用户的封禁。只有具备频道创建权限的用户或全体管理员可以使用此功能。

await nc.unbanUser(channelId, userId);

删除频道

删除指定的频道(可以删除一个或多个频道)。

Channel channel = await nc.deleteChannel([CHANNEL_ID]);

修改频道

更新频道信息。

Channel channel = await nc.updateChannel([CHANNEL_ID],new NBaseSDK.Channel
{
    name = "Update Channel",
    type =[TYPE],    // PUBLIC or PRIVATE
    customField = [CustomField]
});

Last updated