チャンネル

チャンネル

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", "ja" }    //自動翻訳時に必要なオプション以外にも様々なオプションを追加できます。
};
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

応用編

特定チャンネルに対しオンラインアクセスステータスの訪問者リストのみ取得するには、filterに 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);

チャンネル削除

当該チャンネルを削除します(1つまたは複数同時に削除できます)。

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