Photon Chatイントロ

はじめに

オンラインでPhoton Chatを使っているユーザーが継続的コミュニケーションをとれる手段を提供することができます。Photon Chatアプリは接続できる識別可能なアプリとAppIdが必要です。

無料でサインアップ した後、Photon ChatダッシュボードからAppIdを取得しましょう。

Back To Top

接続

アップデートやメッセージを受け取るには、コールバックとして使われる複数のメソッドを実装する必要があります。 C#でそれらはIChatClientListenerインターフェース内で定義されています。

デモではインスタンスを作成してIChatClientListenerインターフェースを実装するためにChatClientクラスを使います。 ChatClientが一度インスタンス化されれば接続ができます。

chatClient = new ChatClient( this );
chatClient.Connect( this.appId, "1.0", this.UserName, null );

AppID以外に、Connect()はバージョン、任意の文字列、およびユーザー名(最良は固有の名前)に渡されます。

Back To Top

購読する

Photon Chatではチャンネルを使ってユーザー、もしくはトピックをグループ化することができます。チャンネルを購読した人は送信されるメッセージを全て受信します。 最初の購読により新しいチャンネルが作成されます。

chatClient.Subscribe( new string[] { "channelA", "channelB" } );

チャンネルを購読するため、購読メソッドには文字列の配列が渡されます。

継続的に'ChatClient.Service()'を呼び出すことにより、接続を生かして、入ってくるメッセージを受信することができます。

chatClient.Service();

こうすることにより新しいメッセージがいつ来るか予期することができます。

Back To Top

送信する

公開メッセージ

送信をする前にメッセージを送信したいチャンネルを購読しましょう。 'PublishMessage()'を使ってチャンネル登録者全員にメッセージを送信しましょう。

chatClient.PublishMessage( "channelA", "So Long, and Thanks for All the Fish!" );

プレーン文字列以外にもPhoton Chatは複雑なメッセージを定義することができます(例:招待など。)

Back To Top

プライベートメッセージ

SendPrivateMessage()'を使ってどのユーザーにもプライベートメッセージを送ることができます。

chatClient.SendPrivateMessage( "Arthur", "2 x 3 x 7" );

Back To Top

受信する

公開メッセージ

IChatClientListenerインターフェース上で'OnGetMessages()'を実装して、入ってくる公開メッセージに対応します。

public void OnGetMessages( string channelName, string[] senders, object[] messages )
{
   string msgs = "";
   for ( int i = 0; i < senders.Length; i++ )
   {
       msgs += senders[i] + "=" + messages[i] + ", ";
   }
   Console.WriteLine( "OnGetMessages: " + channelName + "(" + senders.Length + ") > " + msgs );
}

Back To Top

プライベートメッセージ

プライベートメッセージを受信してパースするにはOnPrivateMessage()"を実装します。

public void OnPrivateMessage( string sender, object message, string channelName )
{
   ChatChannel ch = this.chatClient.PrivateChannels[ channelName ];
   foreach ( object msg in ch.Messages )
   {
       Console.WriteLine( msg );
   }
}

Back To Top

オンライン状態

自分のステータス

SetOnlineStatus()'でプレイヤーのオンライン状態を設定しましょう。実際のステータスと、オプション、ステータスメッセージを渡します。

実際のステータスと、任意のステータスメッセージを渡します。

chatClient.SetOnlineStatus( UserStatus.Online, "Mostly Harmless" );

整数を使って自分のステータスを定義しましょう。

Back To Top

友達のステータス

ユーザー名の配列をPhotonに送って今後のユーザーステータスのアップデートを受信しましょう。

friends = new List<string>() { "Ford", "Zaphod", "Marvin", "Eddie" };
chatClient.AddFriends(friends.ToArray());

IChatClientListenerインターフェース上の'OnStatusUpdate()'で友達ごとの現在の状態が含まれる初回のアップデートが届きます。

OnStatusUpdate( string user, int status, bool gotMessage, object message )
{
    Console.WriteLine( "Status change for: " + user + " to: " + status );
}

ドキュメントのトップへ戻る