Photon Chatイントロ

はじめに

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

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

接続

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

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

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

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

購読する

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

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

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

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

chatClient.Service();

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

送信する

公開メッセージ

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

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

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

プライベートメッセージ

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

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

受信する

公開メッセージ

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

プライベートメッセージ

プライベートメッセージを受信してパースするには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 );
   }
}

オンライン状態

自分のステータス

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

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

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

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

友達のステータス

ユーザー名の配列を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 );
}

サポートについて

Photonチーム(通称Photonian)は万全なサポート体制を敷いています。質問やアプリの不具合の解決には次の方法をお試しください:

  • 問題が発生した場合:フォーラムに質問を投稿してください。
  • プライバシーを重視する場合やサポートが必要な場合はdeveloper@photonengine.jpまでご連絡ください。

スピーディーな対応のために

スピーディーに対応できるよう、再現の手順と共に以下の情報を明記してください:

  • Photon Client SDKのバージョン

    • SDK zipファイル名に含まれています。
    • PUNの場合はPhotonNetwork.versionPunの数値をご連絡ください。
  • Photon Cloud

    • Connect*()コールで設定されるゲームバージョンAppId両方ご連絡ください。
    • ルームに関する問題の場合はRoomNameServer Addressをご連絡ください。C#の場合、ルーム内でclient.CurrentServerAddressをログすることで取得可能です。
    • RegionServer Addressをご連絡ください。
  • Photon Server

    • サーバをホスティングしている場合、Server SDK Versionをご連絡ください。これはSDKのzipファイル名に含まれています。
    • ログを添付してください。

ご意見をお聞かせください

特定のドキュメントに関する指摘、デモの要望、FAQの要望等のドキュメントに関するご意見がございましたら是非お聞かせください。developer@photoncloud.jpまでお気軽にご連絡ください。

より詳しくPhotonについて知りたいですか?

まずは 無償プランを試してみよう。
イベント会場で我々に会いにきてください。
MTGの要望はこちらへ。

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