Photon Unity Networking  v1.84
English | 日本語 | 한국
Public Member Functions | Public Attributes | Properties | List of all members
ExitGames.Client.Photon.Chat.ChatClient Class Reference

接続し、チャンネルとメッセージを処理するPhoton Chat APIの中心クラス。 More...

Inherits IPhotonPeerListener.

Public Member Functions

bool CanChatInChannel (string channelName)
 
 ChatClient (IChatClientListener listener, ConnectionProtocol protocol=ConnectionProtocol.Udp)
 
bool Connect (string appId, string appVersion, AuthenticationValues authValues)
 このクライアントをPhoton Chat Cloudサービスに接続し、ユーザを認証します(また、UserIdを設定します)。 More...
 
void Service ()
 クライアントとサーバ間の接続を維持し、受信メッセージを処理するために定期的に呼び出す必要があります。 More...
 
void SendAcksOnly ()
 
void Disconnect ()
 サーバ側のタイムアウトを防ぐ「切断コマンド」を送信してチャットサーバから切断します。 More...
 
void StopThread ()
 チャットサーバへの接続をローカルでシャットダウンします。これにより、状態はローカルにリセットされますが、サーバはこのピアをタイムアウトする必要があります。 More...
 
bool Subscribe (string[] channels)
 名前からチャンネルのリストに購読するオペレーションを送信します。 More...
 
bool Subscribe (string[] channels, int messagesFromHistory)
 クライアントをチャンネルに登録するオペレーションを送信し、任意でキャッシュからいくつかのメッセージをフェッチします。 More...
 
bool Unsubscribe (string[] channels)
 チャンネルのリストから購読を解除してそれらのメッセージを受信しなくなります。 More...
 
bool PublishMessage (string channelName, object message, bool forwardAsWebhook=false)
 このクライアントが購読しているパブリックチャンネルにメッセージを送信します。 More...
 
bool SendPrivateMessage (string target, object message, bool forwardAsWebhook=false)
 単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。 More...
 
bool SendPrivateMessage (string target, object message, bool encrypt, bool forwardAsWebhook)
 単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。 More...
 
bool SetOnlineStatus (int status)
 ステータスメッセージを変更せずにユーザのステータスを設定します。 More...
 
bool SetOnlineStatus (int status, object message)
 ステータスメッセージを変更せずにユーザのステータスを設定します。 More...
 
bool AddFriends (string[] friends)
 Chat Serverのリストに友人を追加します。Chat Serverはそれらのステータス更新を送信します。 More...
 
bool RemoveFriends (string[] friends)
 チャットサーバのリストから提供されたエントリを削除し、ステータスの更新を停止します。 More...
 
string GetPrivateChannelNameByUser (string userName)
 このクライアントと別のユーザの間のチャットの(ローカルで使用される)チャンネル名を取得します。 More...
 
bool TryGetChannel (string channelName, bool isPrivate, out ChatChannel channel)
 プライベートチャンネルまたはパブリックチャンネルへの名前を指定する簡単なアクセス。 More...
 
bool TryGetChannel (string channelName, out ChatChannel channel)
 名前を指定するすべてのチャンネルへの簡単なアクセス。パブリックチャンネルを最初にチェックし、次にプライベートチャンネルをチェックします。 More...
 

Public Attributes

int MessageLimit
 0より大きい場合、新しいチャンネルはローカルにキャッシュするメッセージの数を制限します。 More...
 
readonly Dictionary< string,
ChatChannel
PublicChannels
 
readonly Dictionary< string,
ChatChannel
PrivateChannels
 
ChatPeer chatPeer = null
 

Properties

string NameServerAddress [get]
 最後に接続したネームサーバのアドレス。 More...
 
string FrontendAddress [get]
 NameServerから割り当てられた実際のチャットサーバのアドレス。読み取り専用で公開。 More...
 
string ChatRegion [get, set]
 設定は接続する前にする必要があります!デフォルトは "EU"です。 More...
 
ChatState State [get]
 ChatClientの現在の状態。CanChatも使用します。 More...
 
ChatDisconnectCause DisconnectedCause [get]
 
bool CanChat [get]
 
string AppVersion [get]
 クライアントのバージョン。新しいバージョンでは、古いバージョンのクライアントからプレーヤーを分ける新しい「仮想アプリケーション」も作成されます。 More...
 
string AppId [get]
 Photon Cloudから割り当てられたAppID。自身でホスティングしている場合は、これは「通常の」Photon Serverアプリケーション名(恐らく「LoadBalancing」)になります。 More...
 
AuthenticationValues AuthValues [get, set]
 設定は接続する前にする必要があります! More...
 
string UserId [get]
 AuthValues.UserIdに格納されているユーザ/個人の一意のID。接続する前に設定してください。 More...
 
bool UseBackgroundWorkerForSending [get, set]
 コードがServiceを呼び出して受信メッセージをディスパッチしている間、バックグラウンドスレッドがSendOutgoingCommandsを呼び出すかどうかを定義します。 More...
 
DebugLevel DebugOut [get, set]
 ライブラリが提供するデバッグ出力のレベル(および量)を設定します。 More...
 

Detailed Description

接続し、チャンネルとメッセージを処理するPhoton Chat APIの中心クラス。

コールバックを取得するには、このクラスをIChatClientListenerインスタンスでインスタンス化する必要があります。 Serviceを定期的に呼び出すことでゲームループに組み込みます。ターゲットプラットフォームがスレッド/タスクに対応している場合、 UseBackgroundWorkerForSending = trueを設定すると、ChatClientは独立した スレッドからの送信によって接続を維持できます。

Photon Chatアプリケーションとして設定されているAppIdで接続を呼び出す。 注:Connectは、このクライアントと サーバ間の複数のメッセージをカバーします。短いワークフローでチャットサーバに接続します。

各ChatClientは、チャット内のユーザを表します(Connectで設定)。各ユーザは、 着信プライベートメッセージのチャンネルを自動的に購読し、他のユーザにプライベートメッセージを送信することができます。 非プライベートチャンネルにメッセージを公開する前に、そのチャンネルを購読する必要があります。

PublicChannelsはメッセージと送信者を含む購読チャンネルのリストです。 PrivateChannelsにはすべての着信および送信済みのプライベートメッセージが含まれます。

Constructor & Destructor Documentation

ExitGames.Client.Photon.Chat.ChatClient.ChatClient ( IChatClientListener  listener,
ConnectionProtocol  protocol = ConnectionProtocol.Udp 
)

Member Function Documentation

bool ExitGames.Client.Photon.Chat.ChatClient.AddFriends ( string[]  friends)

Chat Serverのリストに友人を追加します。Chat Serverはそれらのステータス更新を送信します。

AddFriendsとRemoveFriendsを使用すると、クライアントがPhoton Chat serverでフレンドリストを処理できるようにします。。 ユーザを友だちリストに登録すると、そのユーザの現在の オンラインステータス(およびクライアントが設定した情報)にアクセスできます。

各ユーザは、整数と任意(シリアル化可能)オブジェクトで構成される オンラインステータスを設定できます。オブジェクトは、null、Hashtable、object[]、 またはPhotonがシリアル化できるものです。

ステータスは友だち(AddFriendsであなたのユーザIDを設定したプレイヤー) に自動的に公開されます。

Photonはチャットクライアントが切断されたときにフレンドリストをフラッシュするため、 毎回設定する必要があります。コミュニティAPIがあなたにオンラインステータスへのアクセスを既に与えている場合、 あなたはAddFriendsのオンラインフレンドをフィルタリングして設定することができます。

実際のフレンド関係は永続的ではなく、Photon外に保管する 必要があります。

Parameters
friendsフレンドのuserIdの配列。
Returns
オペレーションを送信できる場合。
bool ExitGames.Client.Photon.Chat.ChatClient.CanChatInChannel ( string  channelName)
bool ExitGames.Client.Photon.Chat.ChatClient.Connect ( string  appId,
string  appVersion,
AuthenticationValues  authValues 
)

このクライアントをPhoton Chat Cloudサービスに接続し、ユーザを認証します(また、UserIdを設定します)。

Parameters
appIdDashboardからPhoton Chat AppIdを入手してください。
appVersionあなたが作るすべてのバージョン文字列。互換性がない可能性のあるクライアントのユーザとバリアントを分けるために使用されます。
authValues認証のための値。前にUserIdを設定した場合は、nullのままにしておくことができます。authValuesを設定すると、前に設定されたUserIdを上書きします。
Returns
void ExitGames.Client.Photon.Chat.ChatClient.Disconnect ( )

サーバ側のタイムアウトを防ぐ「切断コマンド」を送信してチャットサーバから切断します。

string ExitGames.Client.Photon.Chat.ChatClient.GetPrivateChannelNameByUser ( string  userName)

このクライアントと別のユーザの間のチャットの(ローカルで使用される)チャンネル名を取得します。

Parameters
userNameリモートユーザの名前またはUserId。
Returns
プライベートチャンネルの(ローカルで使用される)チャンネル名。
bool ExitGames.Client.Photon.Chat.ChatClient.PublishMessage ( string  channelName,
object  message,
bool  forwardAsWebhook = false 
)

このクライアントが購読しているパブリックチャンネルにメッセージを送信します。

チャンネルに公開する前に、チャンネルに購読する必要があります。 そのチャンネル内の全員がメッセージを受信します。

Parameters
channelName公開するチャンネルの名前。
messageあなたのメッセージ(文字列または任意の直列化可能なデータ)。
forwardAsWebhook任意でパブリックメッセージをwebhookとして転送することもできます。チャットアプリがこれを使用するようにwebhookを設定してください。
Returns
クライアントがメッセージを送信する準備ができていない場合はfalseです。
bool ExitGames.Client.Photon.Chat.ChatClient.RemoveFriends ( string[]  friends)

チャットサーバのリストから提供されたエントリを削除し、ステータスの更新を停止します。

チャットクライアントが切断されたとき、Photonはフレンドリストをフラッシュします。 個々のエントリを削除したい場合を除き、RemoveFriendsを削除する必要はありません。

AddFriendsとRemoveFriendsを使用すると、クライアントはPhotonチャットサーバでフレンドリストを処理できます。 ユーザをフレンドリストに登録すると、ユーザの現在のオンラインステータス (およびクライアントが設定した情報)にアクセスできます。

各ユーザは、整数と任意(シリアル化可能) オブジェクトから構成されたオンラインステータスを設定できます。オブジェクトは、null、Hashtable、object[]、 またはPhotonがシリアル化できるものです。

ステータスは、フレンド(AddFriendsであなたのユーザIDを設定した人) に自動的に公開されます。

Photonはチャットクライアントが切断されたときにフレンドリストをフラッシュするため、 毎回設定する必要があります。コミュニティAPIがあなたにオンラインステータスへのアクセスを既に与えている場合、 あなたはAddFriendsのオンラインフレンドをフィルタリングして設定することができます。

実際のフレンド関係は永続的ではなく、 Photon外に保管する必要があります。

AddFriendsとRemoveFriendsを使用すると、クライアントがPhoton Chat serverでフレンドリストを処理できるようにします。 ユーザを友だちリストに登録すると、そのユーザの現在のオンラインステータス (およびクライアントが設定した情報)にアクセスできます。

各ユーザは、整数と任意(シリアル化可能) オブジェクトから構成されたオンラインステータスを設定できます。 オブジェクトは、null、Hashtable、object[]、またはPhotonがシリアル化できるものです。

ステータスは、フレンド(AddFriendsであなたのユーザIDを設定した人) に自動的に公開されます。

実際のフレンド関係は永続的ではなく、 Photon外に保管する必要があります。

Parameters
friendsフレンドのuserIdの配列。
Returns
オペレーションを送信できる場合。
void ExitGames.Client.Photon.Chat.ChatClient.SendAcksOnly ( )
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage ( string  target,
object  message,
bool  forwardAsWebhook = false 
)

単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。

Parameters
targetこのメッセージを送信する先のユーザ名。
message送信するメッセージ。 シンプルな文字列または直列化可能な任意のものです。
forwardAsWebhook任意で、プライベートメッセージをwebhookとして転送することもできます。Chatアプリがこれを使用するようにwebhookを設定してください。
Returns
このクライアントがサーバにメッセージを送信できる場合はtrue。
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage ( string  target,
object  message,
bool  encrypt,
bool  forwardAsWebhook 
)

単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。

Parameters
targetこのメッセージを送信する先のユーザ名。
message送信するメッセージ。 シンプルな文字列または直列化可能な任意のものです。
encrypt任意でプライベートメッセージを暗号化することができます。サーバがメッセージを復号化するため、暗号化はエンドツーエンドではありません。
forwardAsWebhook任意で、プライベートメッセージをwebhookとして転送することもできます。Chatアプリがこれを使用するようにwebhookを設定してください。
Returns
このクライアントがサーバにメッセージを送信できる場合はtrue。
void ExitGames.Client.Photon.Chat.ChatClient.Service ( )

クライアントとサーバ間の接続を維持し、受信メッセージを処理するために定期的に呼び出す必要があります。

このメソッドは、プライベート変数msDeltaForServiceCallsを使用して自動的に行う作業を制限します。 この値は、接続の場合は低く、チャットサーバ接続の準備ができている場合は4を掛けます。

bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus ( int  status)

ステータスメッセージを変更せずにユーザのステータスを設定します。

定義済みのステータス値はChatUserStatusクラスにあります。 状態ChatUserStatus.Invisibleはあなたを他のプレイヤーに対してオフラインにし、メッセージを送信しません。

ステータス整数にカスタム値を設定できます。あらかじめ設定されたものとは別に、 すべての状態は表示されていてオンラインであると見なされます。そうでなければ、誰もカスタム状態を見ることはできません。

この過負荷によって設定されたメッセージは変更されません。

Parameters
status定義済みの状態はChatUserStatusクラスにあります。他の値も自由に使用できます。
Returns
サーバ上でオペレーションが呼び出された場合はtrueです。
bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus ( int  status,
object  message 
)

ステータスメッセージを変更せずにユーザのステータスを設定します。

定義済みのステータス値はChatUserStatusクラスにあります。 状態ChatUserStatus.Invisibleはあなたを他のプレイヤー対してオフラインにし、メッセージを送信しません。

ステータス整数にカスタム値を設定できます。あらかじめ設定されたものとは別に、 すべての状態は表示されオンラインであると見なされます。そうでなければ、誰もカスタム状態を見ることはできません。

メッセージオブジェクトは、Photonがシリアル化できるものであればどれでもかまいません(ただしこれに限定されません)。 hashtable、object[]、およびstringです。この値は、独自の規則によって定義されます。

Parameters
status定義済みの状態はChatUserStatusクラスにあります。他の値も自由に使用できます。
messageまた、友達が得ることができるステータスメッセージを設定します。
Returns
サーバ上でオペレーションが呼び出された場合はtrueです。
void ExitGames.Client.Photon.Chat.ChatClient.StopThread ( )

チャットサーバへの接続をローカルでシャットダウンします。これにより、状態はローカルにリセットされますが、サーバはこのピアをタイムアウトする必要があります。

bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe ( string[]  channels)

名前からチャンネルのリストに購読するオペレーションを送信します。

Parameters
channels購読するチャンネルのリスト。null値または空の値は使用しないでください。
Returns
オペレーションが送信できる場合(例:チャットサーバに接続されていない場合は失敗します)。
bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe ( string[]  channels,
int  messagesFromHistory 
)

クライアントをチャンネルに登録するオペレーションを送信し、任意でキャッシュからいくつかのメッセージをフェッチします。

購読チャンネルはこのユーザに新しいメッセージを転送します。これを行うにはPublishMessageを使用します。 メッセージキャッシュは限られていますが、必要に応じて進行中の会話に入るのに便利です。

Parameters
channels購読するチャンネルのリスト。null値または空の値は使用しないでください。
messagesFromHistory0:履歴なし。1以上:履歴内のメッセージ数。-1:確認可能なすべての履歴。
Returns
オペレーションを送信できる場合(例:チャットサーバに接続されていない場合は失敗します)。
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel ( string  channelName,
bool  isPrivate,
out ChatChannel  channel 
)

プライベートチャンネルまたはパブリックチャンネルへの名前を指定する簡単なアクセス。

Parameters
channelName取得するチャンネルの名前。プライベートチャンネルの場合、チャンネル名は両方のユーザ名で構成されます。
isPrivateプライベートチャンネルまたはパブリックチャンネルを期待するかどうかを定義します。
channelOutパラメータには、検索されたチャンネルがあればそれが表示されます。
Returns
チャンネルが見つかった場合はtrue。
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel ( string  channelName,
out ChatChannel  channel 
)

名前を指定するすべてのチャンネルへの簡単なアクセス。パブリックチャンネルを最初にチェックし、次にプライベートチャンネルをチェックします。

Parameters
channelName取得するチャンネルの名前。
channelOutパラメータには、検索されたチャンネルがあればそれが表示されます。
Returns
チャンネルが見つかった場合はtrue。
bool ExitGames.Client.Photon.Chat.ChatClient.Unsubscribe ( string[]  channels)

チャンネルのリストから購読を解除してそれらのメッセージを受信しなくなります。

サーバがこのリクエストに対する応答を送信すると、クライアントはPublicChannelsディクショナリからこれらのチャンネルを削除します。

リクエストはサーバに送信され、サーバが実際にチャンネル購読を解除したときに IChatClientListener.OnUnsubscribedが呼び出されます。

nullまたは空のチャンネル名を含めると、購読解除は失敗します。

Parameters
channels解除するチャンネルの名前。
Returns
チャットサーバに接続されていない場合はfalseです。

Member Data Documentation

ChatPeer ExitGames.Client.Photon.Chat.ChatClient.chatPeer = null
int ExitGames.Client.Photon.Chat.ChatClient.MessageLimit

0より大きい場合、新しいチャンネルはローカルにキャッシュするメッセージの数を制限します。

これは、チャットで使用されるメモリの量を制限するのに便利です。 チャンネルごとにMessageLimitを設定できますが、この値は新しいものに適用されます。

注意: この値を変更しても、すでに使用されているChatChannelsには影響しません。

readonly Dictionary<string, ChatChannel> ExitGames.Client.Photon.Chat.ChatClient.PrivateChannels
readonly Dictionary<string, ChatChannel> ExitGames.Client.Photon.Chat.ChatClient.PublicChannels

Property Documentation

string ExitGames.Client.Photon.Chat.ChatClient.AppId
get

Photon Cloudから割り当てられたAppID。自身でホスティングしている場合は、これは「通常の」Photon Serverアプリケーション名(恐らく「LoadBalancing」)になります。

string ExitGames.Client.Photon.Chat.ChatClient.AppVersion
get

クライアントのバージョン。新しいバージョンでは、古いバージョンのクライアントからプレーヤーを分ける新しい「仮想アプリケーション」も作成されます。

AuthenticationValues ExitGames.Client.Photon.Chat.ChatClient.AuthValues
getset

設定は接続する前にする必要があります!

bool ExitGames.Client.Photon.Chat.ChatClient.CanChat
get
string ExitGames.Client.Photon.Chat.ChatClient.ChatRegion
getset

設定は接続する前にする必要があります!デフォルトは "EU"です。

DebugLevel ExitGames.Client.Photon.Chat.ChatClient.DebugOut
getset

ライブラリが提供するデバッグ出力のレベル(および量)を設定します。

これは、IChatClientListener.DebugReturnへのコールバックに影響します。 デフォルトレベル:エラー。

ChatDisconnectCause ExitGames.Client.Photon.Chat.ChatClient.DisconnectedCause
get
string ExitGames.Client.Photon.Chat.ChatClient.FrontendAddress
get

NameServerから割り当てられた実際のチャットサーバのアドレス。読み取り専用で公開。

string ExitGames.Client.Photon.Chat.ChatClient.NameServerAddress
get

最後に接続したネームサーバのアドレス。

ChatState ExitGames.Client.Photon.Chat.ChatClient.State
get

ChatClientの現在の状態。CanChatも使用します。

bool ExitGames.Client.Photon.Chat.ChatClient.UseBackgroundWorkerForSending
getset

コードがServiceを呼び出して受信メッセージをディスパッチしている間、バックグラウンドスレッドがSendOutgoingCommandsを呼び出すかどうかを定義します。

バックグラウンドスレッドを使用してSendOutgoingCommandsを呼び出す利点は次のとおりです:

ゲームロジックが一時停止中でも、バックグラウンドスレッドはサーバへの接続を維持します。 下位レベルでは、確認応答とpingはサーバ側のタイムアウトを防ぎます(たとえば、Unityがアセットを読み込んでいる間)。

ゲームロジックは、依然としてServiceを定期的に呼び出さないと、着信メッセージが発送されません。 これは通常UI更新をトリガーするので、メイン/ UIスレッドからServiceを呼び出す方が簡単です。

string ExitGames.Client.Photon.Chat.ChatClient.UserId
get

AuthValues.UserIdに格納されているユーザ/個人の一意のID。接続する前に設定してください。

この値はAuthValues.UserIdをラップします。 これはニックネームではなく、同じユーザIDを持つユーザは同じ人物であると想定します。