> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab Party port usage and firewall requirements

> PlayFab Party がリアルタイム ボイス チャット、テキスト チャット、およびデータ通信トラフィックのために必要とするネットワーク ポートとファイアウォール ルールのリファレンス。

# PlayFab Party のポート使用、ファイアウォール、およびパケット サイズ要件

このトピックでは、チャットとデータ通信を有効にするために必要な PlayFab Party のポート使用、ファイアウォール、およびパケット サイズ要件に関する詳細を提供します。

## 通信パターン

PlayFab Party は 2 つの通信パターンを使用します。

1. HTTPS 通信。API 呼び出し元から *playfabapi.com* を含む複数のクラウド Web サービスに開始されます。

2. UDP ソケット ベースのセキュアな通信。透過的なクラウド リレー サーバー、および (サポートされている場合) 他のピア デバイスとの間で行われます。

いずれかのパターンがブロックされている場合、初期の PlayFab Party API 操作、または初期の [`PartyRegionsChangedStateChange`](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) などの自動通知は [`PartyStateChangeResult::InternetConnectivityError`](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult) を報告します。

Web サービス要求の問題については、ユーザー ログイン機能などの Party の外部の PlayFab およびプラットフォームの他の必要な操作も失敗する可能性があります。これらの失敗は、多くの場合、HTTPS 接続に対するローカル ファイアウォールの制限またはプロキシ要件によって引き起こされます。ほとんどの問題は、ローカル デバイスまたはネットワークからクラウド Web サービスへの直接的な送信 HTTPS 通信を有効にすることで解決できます。

## HTTPS ドメイン名

Microsoft PlayFab Party は、複数のクラウド サービスに対して UDP と HTTPS 接続を実行します。正常な機能を確保するために、ドメイン名に基づいて HTTPS トラフィックをフィルターする環境では、以下の名前または名前パターンにアクセスできるようにする必要があります。

HTTPS 接続:

* *\*.playfabapi.com*
* *\*.speech.microsoft.com*
* *api.cognitive.microsofttranslator.com*

このドメイン名のリストは通知なく変更される場合があります。このリストを定期的に確認し、変更を予期してください。

## MTU とパケット サイズ

PlayFab Party は、環境のパケット サイズ制限内に大きなアプリケーション メッセージを収めるために、フラグメンテーションと再組み立てを自動的に実行します。この機能があっても、一部のネットワーク環境では通信の失敗を引き起こす場合があります。

現時点で PlayFab Party は、パフォーマンスの低下や潜在的な接続失敗を回避するために、環境が少なくとも 1,419 バイトの Maximum Transmission Unit (MTU) サイズをサポートすることを期待しています。この MTU サイズは、通常の環境でサポートされています。仮想プライベート ネットワーク (VPN)、IPv4/IPv6 トンネリング、または明示的な管理構成により、Party クライアント、サービス、または他のクライアント間のネットワーク パスの片方向または両方向で MTU サイズが削減される可能性があります。

指定された環境でエンドツーエンドでサポートされる MTU が不十分な場合、[`PartyManager::ConnectToNetwork`](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_connecttonetwork) 操作は [`PartyStateChangeResult::InternetConnectivityError`](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult) で失敗する可能性があります。あるいは、接続は成功するかもしれませんが、デバイスは不要なレイテンシ、パケット損失、または予期しない切断に直面する可能性があります。

一部のプラットフォームでは、環境の MTU 構成に関する問題のトラブルシューティングに役立つエンド ユーザー、開発者、またはインターネット サービス プロバイダー向けのツールが提供されており、可能であれば使用する必要があります。

## ローカル デバイスの UDP ポート使用

既定では、PlayFab Party ライブラリは、ほとんどのプラットフォームで OS によって動的に割り当てられた利用可能なローカル ポートに UDP ソケットをバインドします。例外は Microsoft Game Core で、PlayFab Party はそのプラットフォームの "preferred local UDP multiplayer port" にバインドするのが既定です。

タイトルは、[`PartyManager::Initialize()`](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_initialize) を呼び出す前に [`PartyOption::LocalUdpSocketBindAddress`](/services/playfab/multiplayer/networking/reference/enums/partyoption) オプションを設定することで、特定のローカル ポート番号または Microsoft Game Core の "preferred local UDP multiplayer port" 以外の OS が選択した利用可能なポートにバインドするようこの動作を変更できます。要求されたポートが既にタイトル内で、またはデバイス上の別のアプリケーションによって使用されている場合、[`PartyManager::Initialize()`](/services/playfab/multiplayer/networking/reference/classes/PartyManager/methods/partymanager_initialize) がすぐにエラーを報告するか、初期の [`PartyRegionsChangedStateChange`](/services/playfab/multiplayer/networking/reference/structs/partyregionschangedstatechange) が [`PartyStateChangeResult::FailedToBindToLocalUdpSocket`](/services/playfab/multiplayer/networking/reference/enums/partystatechangeresult) エラーを報告し、非同期のネットワーク作成または接続操作は失敗します。

環境固有の理由でエンド ユーザーから要求されない限り、構成不要の最大限の互換性を得るために、タイトルには既定のローカル ポート選択動作を使用することが推奨されます。タイトルが既定でない値を使用する場合、より多くのプラットフォーム固有の要件がある場合があります。ポート使用のガイダンスについては、各プラットフォームのドキュメントを参照してください。

PlayFab Party の通信では、選択されたローカル UDP ポートから次のセクションで説明するリモート宛先へ、送信を開始したパケットとその後続の応答を常に許可する必要があります。ネットワーク管理者は、最大限の互換性のために、[RFC 4787 - "Network Address Translation (NAT) Behavioral Requirements for Unicast UDP"](https://datatracker.ietf.org/doc/html/rfc4787) のような、ファイアウォールと Network Address Translation (NAT) のインターネット標準のベスト プラクティスに従う必要があります。これらのベスト プラクティスは、Party ネットワークにダイレクト ピアツーピア接続を使用しているタイトルにとって特に重要です。最小限のサポートを持つ環境では、ネットワークへの接続を許可する可能性があるものの、あるデバイスから別のデバイスへのその直接通信の確立を妨げる可能性があるためです。

## リモート IP アドレスと UDP ポート

Microsoft PlayFab Party は、ユーザーに最適なレイテンシを提供するために、複数のリージョン間で動的にスケーリングされるサービスを提供します。これは、厳格な通信制約に興味のあるネットワーク管理者が参照できる永続的なリモート宛先ホスト名、IP アドレス、またはポートがないことを意味します。

Microsoft は Azure の IP アドレス範囲リストの毎週の更新を提供しており、[ダウンロード可能](https://www.microsoft.com/download/details.aspx?id=56519) です。ローカル ネットワーク トラフィックを制限するために継続的に同期されたポリシーが実行可能な場合、このリストが役立つ可能性があります。ほとんどの場合、このリストの継続的なメンテナンスは困難で、微妙な接続の失敗を引き起こしやすいです。また、Party ネットワーク内のダイレクト ピアツーピア接続では、リモート クライアントの IP アドレスも判明していて接続を許可されている必要があります。これらの理由から、ファイアウォールはリモート IP アドレスの接続を制限しないことをお勧めします。

PlayFab Party で使用可能なサポートされるリモート ポート範囲は、Internet Assigned Numbers Authority (IANA) の予約範囲である 0-1023 以外の任意のポートです。現在、透過的なクラウド リレーには 30000-65535 のポート番号のみが割り当てられますが、Microsoft は将来この動作を変更する権利を留保します。ベスト プラクティスとして、ポート範囲 1024-65535 を使用する必要があります。これは、Party ネットワークにダイレクト ピアツーピア接続を使用するタイトルにとって特に重要です。NAT 実装は通常、この範囲からポートを割り当てるためです。完全な推奨範囲以外のリモート ポートをブロックすると、直接通信も妨げる可能性があります。

UDP 接続を有効にするには、ドメイン名に基づいて UDP トラフィックをフィルターする環境では、以下の名前または名前パターンにアクセスできるようにする必要があります。

* *\*.cloudapp.azure.com*

ドメイン名解決を介して UDP 接続のリモート IP アドレスをフィルタリングすることは可能ですが、強く推奨されません。現在、透過的なクラウド リレー サーバーへのすべての接続は *\*.cloudapp.azure.com* 形式の名前を解決しますが、このパターンは通知なく変更される場合があります。名前で解決された IP アドレスにのみ UDP 接続を制限すると、ダイレクト ピアツーピア接続も妨げられます。

## 関連項目

[PlayFab Party とダイレクト ピアツーピア接続](/services/playfab/multiplayer/networking/concepts-direct-peer-connectivity)


## Related topics

- [XBOX Tools Framework](/ja-jp/reference/tools/xtf/atoc-xbox-tools-framework.md)
- [PlayFab Party Typedefs](/ja-jp/services/playfab/multiplayer/networking/reference/typedefs.md)
- [PartyRegion](/ja-jp/services/playfab/multiplayer/networking/reference/structs/partyregion.md)
- [PartyTranslation](/ja-jp/services/playfab/multiplayer/networking/reference/structs/partytranslation.md)
- [PartyDevice](/ja-jp/services/playfab/multiplayer/networking/reference/classes/PartyDevice/partydevice.md)
