Webhook v1.2の新機能
"Username" は "NickName"になりました
これは互換性に影響する変更で、Webhook 1.2にアップグレードする際に適用する必要があります!
これまでにwebhookリクエストのデータで発生したUsernameプロパティは全てNickNameに置き換えられます。
この変更は、すべてのwebhookに影響します。
UsernameはPathClose以外のすべてのwebhookデータのトップレベルのプロパティです。UsernameはActorList配列要素のプロパティです。
ActorListは、直列化されたルーム状態の一部です。
状態を含む可能性のあるwebhookはPathClose (Type="Save")、PathPropertiesとPathEventです。
エラーコード
簡単にデバッグを行うため、新しいエラーコードを見つけて古いInternalServerError(-1)を置き換えます。
これらの新しいコードは、joinに関連するすべての例外をカバーします。
JoinFailedPeerAlreadyJoined (32750):
現在のピアがすでにjoinを呼んでルームに参加していることを意味します。JoinFailedFoundInactiveJoiner (32749):
リクエストされたActorNrまたはUserIdのアクターがInactiveActorsのリストにすでに含まれていることを示します。JoinFailedWithRejoinerNotFound (32748):
リクエストされたActorNrまたはUserIdのアクターがInactiveActorsのリストに含まれていなかったことを示します。JoinFailedFoundActiveJoiner (32746):
リクエストされたActorNrまたはUserIdのアクターがActiveActorsのリストにすでに含まれていることを示します。
WebFlags
これらのwebflagsは、PhotonクライアントSDK内でOpRaiseEventおよびOpSetPropertiesメソッドによって使用される任意のフラグです。
PathEventおよびPathProperties webhookに影響します。
HttpForward
このwebflagでは、Webhook 1.2がOpRaiseEventとOpSetPropertiesメソッド内の以前のブールパラメータを同名のパラメータに内部的にどのように置換するかを示しています。
このフラグの目的は、Webサービスにこれらのオペレーションを転送するかどうかを決定することです。
以下に記載された、他のすべてのwebflagsはHttpForward (0x01)に依存します。
HttpForwardが設定されているだけでは有効とみなすことはできません。
SendAuthCookie
Webhookは、Webサービスが利用可能な場合に、暗号化されたオブジェクトAuthCookieをWebサービスに安全に送信するオプションを提供しています。
このオプションは、適切なwebflag (SendAuthCookie (0x02))を設定することで実行できます。
AuthCookieは、カスタム認証プロバイダに対する認証が成功した後に回収することができます。
詳細は、カスタム認証ドキュメントのページをご覧ください。
SendSync
Webhook 1.2では、HTTPクエリの同期処理または非同期処理を選択できるようになりました。
デフォルトでは、Webhookは非同期処理されます。、
SendSync (0x04)によって、オペレーションの通常処理を続行する前に、webhookプラグインがブロックを行い、レスポンスを待つよう設定できるようになりました。
SendState
これは互換性に影響する変更であり、Webhook 1.2にアップグレードする際に適用する必要があります!
Webhook 1.0では、直列化されたルーム状態はState引数として自動的にすべての_PathEvent_ および PathProperties webhookとともに送信されます。
結果的に、トラフィックが増加し遅延が発生します。
転送イベントが多いゲームや、頻繁にプロパティを更新するゲーム、ゲーム状態が多いゲームの場合、問題が発生する可能性があります。
また、すべての開発者がこれらのwebhook内のルーム状態にアクセスする必要があるわけではありませんが、デフォルトの動作を変更することはできませんでした。
Webhook1.2では、SendState(0x08) webflagを導入したので、開発者はWebサービスにイベントやプロパティの更新を転送する際にルーム状態を送信するかどうかを選択できるようになりました。
SendState webflagは、"IsPersistent"webhook設定が有効(trueに設定)の場合にのみ作動します。
独自のHTTPヘッダーを追加
Webhook1.2では、カスタムヘッダーを設定してすべてのwebhookのHTTPリクエストで送信できるようになりました。
これは、アプリケーションのwebhookを設定する際に、CustomHttpHeadersキーの値として、JSON形式でヘッダーを追加することによって行うことができます。
この新機能により、HTTPヘッダーとして、WebサービスのためのシークレットAPIキーを提供するなど、可能性が広がります。