PiaSession の概念について説明します。PiaSession は様々な要素から構成されており、各要素の概念を理解しておくとプログラミングが行いやすくなります。
PiaSession の「セッション」とは、マッチメイクサーバー上のグループであるマッチメイクセッション(またはローカル通信のローカルネットワーク)と、お互いが P2P 通信接続状態となっている P2P メッシュネットワークを合わせたものに相当します。セッションの構築/参加処理を行うことで自動的にマッチメイクセッション/ローカルネットワークと P2P メッシュネットワークの構築/参加処理が行われます。PiaSession では P2P メッシュネットワークのことを単に「メッシュ」と呼びます。
セッションを管理する場合は Session クラスを通して呼び出すセッション API を使用します。
メッシュを直接操作するメッシュ API が過去のコードとして残っていますがサポートされていません。セッション API を使用してください。
セッション API は内部で NEX マッチメイク API を呼び出します。各機能の適切な使用方法を理解するために、NEX プログラミングマニュアルのマッチメイクの章も参照してください。
PiaSession ではセッション同士をマッチメイクさせて複数のセッションを合流させる(足し合わせる)ことができます。合流させる場合、ジョイントセッションを使います。
ジョイントセッションでは、複数のセッションに参加している全てのステーションを、新規に作成するジョイントセッションに自動的に参加させることができます。元のセッションは存続しており、ジョイントセッションを破棄すると自動的に元のセッションに戻ります。ジョイントセッション機能により、例えば、チーム毎にセッションを作ってからチーム 1 とチーム 2 で一つのジョイントセッションを作って対戦する、といった遊びが可能となります。3つ以上のセッションを合流できますが、ジョイントセッションを他のセッションやジョイントセッションと合流することはできません。
PiaSession で使用可能な各ネットワークトポロジーについて、接続イメージや特徴を説明します。説明中の「リレー送受信」「リレー接続」などの詳細は 7.10. 応用機能 - リレー通信機能 のページを参照してください。
フルメッシュ型(完全接続型)ネットワークトポロジー、列挙子名 NetworkTopology_FullMesh です。このトポロジーの接続イメージを 図 7-2. NetworkTopology_FullMesh 接続イメージ に示します。
フルメッシュ型のセッションへ参加中の各ステーションは、自分以外のステーション全てに対して直通の通信経路が確立していることが保証されます。
以下のような特徴があります。
以下のような通信仕様のアプリケーションでは、フルメッシュ型ネットワークトポロジーを推奨します。(あくまでも推奨であり、「これ以外の通信仕様では使用禁止」というわけではありません)
リレーメッシュ型ネットワークトポロジーは PiaInet 使用時のみ利用可能です。
リレーメッシュ型ネットワークトポロジー、列挙子名 NetworkTopology_RelayMesh です。このトポロジーの接続イメージを 図 7-3. NetworkTopology_RelayMesh 接続イメージ に示します。
リレーメッシュ型のセッションでは、基本的に各ステーション間で直通の通信経路を確立させますが、一部の相手とはリレー送受信(転送)によって通信を行います。
通信経路がリレー接続となる相手は、セッション参加処理時に直通の通信経路が確立できなかった相手になります。(上記 図 7-3. NetworkTopology_RelayMesh 接続イメージ を例にとると、Client1-Client4, Client1-Client5, Client2-Client4, Client2-Client5 の組み合わせが、直通の通信経路が無いのでリレー接続となります)
セッション参加処理時に全てのセッション参加済ステーションと直通の通信経路が確立できた場合はフルメッシュ型と同等の接続状態になりますが、リレー接続およびリレー送受信用処理が動作している分、フルメッシュ型よりも若干システム用通信量が増えます。
以下のような特徴があります。
以下のような通信仕様のアプリケーションでは、リレーメッシュ型ネットワークトポロジーを推奨します。(あくまでも推奨であり、「これ以外の通信仕様では使用禁止」というわけではありません)