PUN Classic (v1)、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

接続の許可と拒否

Boltは、接続試行を受信すると、その接続が確立する前およびクライアントがシーンを読み込む前に接続の許可・拒否を行うことができます。通常、Bolt設定でAccept Modeを手動に設定しない限り、自動的にすべての接続が許可されます(以下の図をご覧ください)。サーバーが満杯状態などは受信した接続を拒否する一例です。

Setup Accept Mode.
Setup Accept Mode.

クライアントは接続時にサーバーへトークンを送信することができます(パスワードで保護されたゲームセッションやへ入るときや、サードパーティセッションチケット使用時など)。このトークンはConnectionRequestへ受け渡され(以下を参照)、さらに接続完了などのコールバックから使用できるBoltConnection(ConnectToken)のメンバーとして利用可能なハンドシェイクまで到達します。

クライアント上では、BoltNetwork.Connectのバリエーションを使用して、リクエストをサーバーへ送信し接続を試行できます。

C#

public static void BoltNetwork.Connect(UdpSession session, IProtocolToken token);
public static void BoltNetwork.Connect(UdpSession session);
public static void BoltNetwork.Connect(UdpEndPoint endpoint, IProtocolToken token);
public static void BoltNetwork.Connect(UdpEndPoint endpoint);

接続メソッドを呼び出した後、以下のコールバックによってこのピアがサーバーへの接続を試行していることが通知されます。

C#

public virtual void GlobalEventListenerBase.ConnectAttempt(UdpEndPoint endpoint, IProtocolToken token);

サーバーでは、新しいプレイヤーが接続を試行した時に以下のリクエストを受け取ります。

C#

public virtual void GlobalEventListenerBase.ConnectRequest(UdpEndPoint endpoint, IProtocolToken token);

クライアントはサーバーへの接続時にトークンを受け渡すことができます。このトークンはサーバー上のConnectionRequestコールバックとConnectedコールバックの両方で使用されます。

*Accept Mode(許可モード)*が手動になっている場合は、以下のいずれかを呼び出す必要があります。

C#

public static void BoltNetwork.Accept(UdpEndPoint endpoint);
public static void BoltNetwork.Accept(UdpEndPoint endpoint, IProtocolToken acceptToken);

または

C#

public static void BoltNetwork.Refuse(UdpEndPoint endpoint);
public static void BoltNetwork.Refuse(UdpEndPoint endpoint, IProtocolToken refuseToken);

これらのメソッドにより、必要であればトークンを返すことができるようになります。ユーザーへの表示のためテキスト変換できるエラーメッセージ結果などのクライアントへの応答にご利用ください。

接続が許可されると、クライアントは以下のコールバックを受信します。

C#

public virtual void GlobalEventListenerBase.Connected(BoltConnection connection);

または、接続が拒否された場合はこちらを受け取ります。

C#

public virtual void GlobalEventListenerBase.ConnectRefused(UdpEndPoint endpoint, IProtocolToken token);

クライアントはConnectedコールバック内のBoltConnection.AcceptTokenでAcceptトークンを取得できます。
以下の一連の図に全体のプロセスがまとまっています。

Accept-Refuse Flow.
Accept-Refuse Flow.
Back to top