接続し、チャンネルとメッセージを処理する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... | |
接続し、チャンネルとメッセージを処理するPhoton Chat APIの中心クラス。
コールバックを取得するには、このクラスをIChatClientListenerインスタンスでインスタンス化する必要があります。 Serviceを定期的に呼び出すことでゲームループに組み込みます。ターゲットプラットフォームがスレッド/タスクに対応している場合、 UseBackgroundWorkerForSending = trueを設定すると、ChatClientは独立した スレッドからの送信によって接続を維持できます。
Photon Chatアプリケーションとして設定されているAppIdで接続を呼び出す。 注:Connectは、このクライアントと サーバ間の複数のメッセージをカバーします。短いワークフローでチャットサーバに接続します。
各ChatClientは、チャット内のユーザを表します(Connectで設定)。各ユーザは、 着信プライベートメッセージのチャンネルを自動的に購読し、他のユーザにプライベートメッセージを送信することができます。 非プライベートチャンネルにメッセージを公開する前に、そのチャンネルを購読する必要があります。
PublicChannelsはメッセージと送信者を含む購読チャンネルのリストです。 PrivateChannelsにはすべての着信および送信済みのプライベートメッセージが含まれます。
ExitGames.Client.Photon.Chat.ChatClient.ChatClient | ( | IChatClientListener | listener, |
ConnectionProtocol | protocol = ConnectionProtocol.Udp |
||
) |
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外に保管する 必要があります。
friends | フレンドのuserIdの配列。 |
bool ExitGames.Client.Photon.Chat.ChatClient.CanChatInChannel | ( | string | channelName | ) |
bool ExitGames.Client.Photon.Chat.ChatClient.Connect | ( | string | appId, |
string | appVersion, | ||
AuthenticationValues | authValues | ||
) |
void ExitGames.Client.Photon.Chat.ChatClient.Disconnect | ( | ) |
サーバ側のタイムアウトを防ぐ「切断コマンド」を送信してチャットサーバから切断します。
string ExitGames.Client.Photon.Chat.ChatClient.GetPrivateChannelNameByUser | ( | string | userName | ) |
このクライアントと別のユーザの間のチャットの(ローカルで使用される)チャンネル名を取得します。
userName | リモートユーザの名前またはUserId。 |
bool ExitGames.Client.Photon.Chat.ChatClient.PublishMessage | ( | string | channelName, |
object | message, | ||
bool | forwardAsWebhook = false |
||
) |
このクライアントが購読しているパブリックチャンネルにメッセージを送信します。
チャンネルに公開する前に、チャンネルに購読する必要があります。 そのチャンネル内の全員がメッセージを受信します。
channelName | 公開するチャンネルの名前。 |
message | あなたのメッセージ(文字列または任意の直列化可能なデータ)。 |
forwardAsWebhook | 任意でパブリックメッセージをwebhookとして転送することもできます。チャットアプリがこれを使用するようにwebhookを設定してください。 |
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外に保管する必要があります。
friends | フレンドのuserIdの配列。 |
void ExitGames.Client.Photon.Chat.ChatClient.SendAcksOnly | ( | ) |
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage | ( | string | target, |
object | message, | ||
bool | forwardAsWebhook = false |
||
) |
単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。
target | このメッセージを送信する先のユーザ名。 |
message | 送信するメッセージ。 シンプルな文字列または直列化可能な任意のものです。 |
forwardAsWebhook | 任意で、プライベートメッセージをwebhookとして転送することもできます。Chatアプリがこれを使用するようにwebhookを設定してください。 |
bool ExitGames.Client.Photon.Chat.ChatClient.SendPrivateMessage | ( | string | target, |
object | message, | ||
bool | encrypt, | ||
bool | forwardAsWebhook | ||
) |
単一のターゲットユーザにプライベートメッセージを送信します。受信側のクライアントでOnPrivateMessageを呼び出します。
target | このメッセージを送信する先のユーザ名。 |
message | 送信するメッセージ。 シンプルな文字列または直列化可能な任意のものです。 |
encrypt | 任意でプライベートメッセージを暗号化することができます。サーバがメッセージを復号化するため、暗号化はエンドツーエンドではありません。 |
forwardAsWebhook | 任意で、プライベートメッセージをwebhookとして転送することもできます。Chatアプリがこれを使用するようにwebhookを設定してください。 |
void ExitGames.Client.Photon.Chat.ChatClient.Service | ( | ) |
クライアントとサーバ間の接続を維持し、受信メッセージを処理するために定期的に呼び出す必要があります。
このメソッドは、プライベート変数msDeltaForServiceCallsを使用して自動的に行う作業を制限します。 この値は、接続の場合は低く、チャットサーバ接続の準備ができている場合は4を掛けます。
bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus | ( | int | status | ) |
ステータスメッセージを変更せずにユーザのステータスを設定します。
定義済みのステータス値はChatUserStatusクラスにあります。 状態ChatUserStatus.Invisibleはあなたを他のプレイヤーに対してオフラインにし、メッセージを送信しません。
ステータス整数にカスタム値を設定できます。あらかじめ設定されたものとは別に、 すべての状態は表示されていてオンラインであると見なされます。そうでなければ、誰もカスタム状態を見ることはできません。
この過負荷によって設定されたメッセージは変更されません。
status | 定義済みの状態はChatUserStatusクラスにあります。他の値も自由に使用できます。 |
bool ExitGames.Client.Photon.Chat.ChatClient.SetOnlineStatus | ( | int | status, |
object | message | ||
) |
ステータスメッセージを変更せずにユーザのステータスを設定します。
定義済みのステータス値はChatUserStatusクラスにあります。 状態ChatUserStatus.Invisibleはあなたを他のプレイヤー対してオフラインにし、メッセージを送信しません。
ステータス整数にカスタム値を設定できます。あらかじめ設定されたものとは別に、 すべての状態は表示されオンラインであると見なされます。そうでなければ、誰もカスタム状態を見ることはできません。
メッセージオブジェクトは、Photonがシリアル化できるものであればどれでもかまいません(ただしこれに限定されません)。 hashtable、object[]、およびstringです。この値は、独自の規則によって定義されます。
status | 定義済みの状態はChatUserStatusクラスにあります。他の値も自由に使用できます。 |
message | また、友達が得ることができるステータスメッセージを設定します。 |
void ExitGames.Client.Photon.Chat.ChatClient.StopThread | ( | ) |
チャットサーバへの接続をローカルでシャットダウンします。これにより、状態はローカルにリセットされますが、サーバはこのピアをタイムアウトする必要があります。
bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe | ( | string[] | channels | ) |
名前からチャンネルのリストに購読するオペレーションを送信します。
channels | 購読するチャンネルのリスト。null値または空の値は使用しないでください。 |
bool ExitGames.Client.Photon.Chat.ChatClient.Subscribe | ( | string[] | channels, |
int | messagesFromHistory | ||
) |
クライアントをチャンネルに登録するオペレーションを送信し、任意でキャッシュからいくつかのメッセージをフェッチします。
購読チャンネルはこのユーザに新しいメッセージを転送します。これを行うにはPublishMessageを使用します。 メッセージキャッシュは限られていますが、必要に応じて進行中の会話に入るのに便利です。
channels | 購読するチャンネルのリスト。null値または空の値は使用しないでください。 |
messagesFromHistory | 0:履歴なし。1以上:履歴内のメッセージ数。-1:確認可能なすべての履歴。 |
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel | ( | string | channelName, |
bool | isPrivate, | ||
out ChatChannel | channel | ||
) |
プライベートチャンネルまたはパブリックチャンネルへの名前を指定する簡単なアクセス。
channelName | 取得するチャンネルの名前。プライベートチャンネルの場合、チャンネル名は両方のユーザ名で構成されます。 |
isPrivate | プライベートチャンネルまたはパブリックチャンネルを期待するかどうかを定義します。 |
channel | Outパラメータには、検索されたチャンネルがあればそれが表示されます。 |
bool ExitGames.Client.Photon.Chat.ChatClient.TryGetChannel | ( | string | channelName, |
out ChatChannel | channel | ||
) |
名前を指定するすべてのチャンネルへの簡単なアクセス。パブリックチャンネルを最初にチェックし、次にプライベートチャンネルをチェックします。
channelName | 取得するチャンネルの名前。 |
channel | Outパラメータには、検索されたチャンネルがあればそれが表示されます。 |
bool ExitGames.Client.Photon.Chat.ChatClient.Unsubscribe | ( | string[] | channels | ) |
チャンネルのリストから購読を解除してそれらのメッセージを受信しなくなります。
サーバがこのリクエストに対する応答を送信すると、クライアントはPublicChannelsディクショナリからこれらのチャンネルを削除します。
リクエストはサーバに送信され、サーバが実際にチャンネル購読を解除したときに IChatClientListener.OnUnsubscribedが呼び出されます。
nullまたは空のチャンネル名を含めると、購読解除は失敗します。
channels | 解除するチャンネルの名前。 |
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 |
|
get |
Photon Cloudから割り当てられたAppID。自身でホスティングしている場合は、これは「通常の」Photon Serverアプリケーション名(恐らく「LoadBalancing」)になります。
|
get |
クライアントのバージョン。新しいバージョンでは、古いバージョンのクライアントからプレーヤーを分ける新しい「仮想アプリケーション」も作成されます。
|
getset |
設定は接続する前にする必要があります!
|
get |
|
getset |
設定は接続する前にする必要があります!デフォルトは "EU"です。
|
getset |
ライブラリが提供するデバッグ出力のレベル(および量)を設定します。
これは、IChatClientListener.DebugReturnへのコールバックに影響します。 デフォルトレベル:エラー。
|
get |
|
get |
NameServerから割り当てられた実際のチャットサーバのアドレス。読み取り専用で公開。
|
get |
最後に接続したネームサーバのアドレス。
|
get |
ChatClientの現在の状態。CanChatも使用します。
|
getset |
コードがServiceを呼び出して受信メッセージをディスパッチしている間、バックグラウンドスレッドがSendOutgoingCommandsを呼び出すかどうかを定義します。
バックグラウンドスレッドを使用してSendOutgoingCommandsを呼び出す利点は次のとおりです:
ゲームロジックが一時停止中でも、バックグラウンドスレッドはサーバへの接続を維持します。 下位レベルでは、確認応答とpingはサーバ側のタイムアウトを防ぎます(たとえば、Unityがアセットを読み込んでいる間)。
ゲームロジックは、依然としてServiceを定期的に呼び出さないと、着信メッセージが発送されません。 これは通常UI更新をトリガーするので、メイン/ UIスレッドからServiceを呼び出す方が簡単です。
|
get |
AuthValues.UserIdに格納されているユーザ/個人の一意のID。接続する前に設定してください。
この値はAuthValues.UserIdをラップします。 これはニックネームではなく、同じユーザIDを持つユーザは同じ人物であると想定します。