연결 허용 및 거부
Photon Bolt를 사용하면 전체 연결이 이루어지기 전이나 클라이언트가 씬 로드를 시작하기 전에 수신 연결 시도를 허용하거나 거부할 수 있습니다.
일반적으로 Bolt 설정으로 들어가 허용 모드
를 수동
으로 변경하지 않는 한 모든 연결이 자동으로 허용됩니다(아래 그림 참조).
예를 들어 서버의 허용치를 벗어나서 수신 연결을 거부하는 경우가 있습니다.
클라이언트는 연결할 때 토큰을 서버로 보낼 수 있습니다(예: 암호로 보호된 게임 세션 입력, 타사 세션 티켓 등).
이 토큰은 ConnectionRequest
(아래 참조)에 전달되며 Connected
과 같은 콜백에서 사용할 수 있는 BoltConnection
(ConnectToken
)의 멤버로 사용할 수 있습니다.
클라이언트에서 서버에 요청을 보내기 위해 BoltNetwork.Connect
또는 BoltMatchmaking.JoinSession
의 한 버전을 사용할 수 있습니다.
C#
public static void BoltMatchmaking.JoinSession(string sessionID, IProtocolToken token);
public static void BoltMatchmaking.JoinSession(UdpSession session, IProtocolToken token);
public static void BoltMatchmaking.JoinRandomSession(IProtocolToken token);
public static void BoltMatchmaking.JoinRandomSession(UdpSessionFilter sessionFilter, IProtocolToken token);
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
에 모두 사용됩니다.
허용 모드가 수동
인 경우, 모두 호출해야 합니다:
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 Token
을 검색할 수 있습니다.
아래의 시퀀스 다이어그램은 전체 프로세스를 요약합니다.