연결 허용 및 거부

Photon Bolt를 사용하면 전체 연결이 이루어지기 전이나 클라이언트가 씬 로드를 시작하기 전에 수신 연결 시도를 허용하거나 거부할 수 있습니다. 일반적으로 Bolt 설정으로 들어가 허용 모드수동으로 변경하지 않는 한 모든 연결이 자동으로 허용됩니다(아래 그림 참조). 예를 들어 서버의 허용치를 벗어나서 수신 연결을 거부하는 경우가 있습니다.

Setup Accept Mode
Setup Accept Mode.

클라이언트는 연결할 때 토큰을 서버로 보낼 수 있습니다(예: 암호로 보호된 게임 세션 입력, 타사 세션 티켓 등). 이 토큰은 ConnectionRequest(아래 참조)에 전달되며 Connected과 같은 콜백에서 사용할 수 있는 BoltConnection (ConnectToken)의 멤버로 사용할 수 있습니다.

클라이언트에서 서버에 요청을 보내기 위해 BoltNetwork.Connect 또는 BoltMatchmaking.JoinSession의 한 버전을 사용할 수 있습니다.

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);

다음 콜백은 이러한 방법 중 하나를 호출한 후 이 피어가 서버에 연결을 시도하고 있음을 나타냅니다.

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

서버에서 새 플레이어가 연결을 시도할 때 다음 요청을 수신합니다.

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

클라이언트가 서버에 연결을 시도할 때 토큰을 전달할 수 있습니다. 이 토큰은 서버의 ConnectionRequestConnected에 모두 사용됩니다.

허용 모드수동인 경우, 모두 호출해야 합니다:

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

또는

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

이러한 방법을 사용하면 토큰을 반환할 수 있습니다. 예를 들어, 사용자에게 표시하기 위해 텍스트로 변환할 수 있는 오류 메시지 결과를 클라이언트에 대한 응답에 사용할 수 있습니다.

연결이 수락된 경우 클라이언트는 다음과 같은 콜백을 수신합니다.

public virtual void GlobalEventListenerBase.Connected(BoltConnection connection);

또는 이 연결이 거부된 경우 다음과 같습니다.

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

클라이언트는 Connected 콜백 내의 BoltConnection.AcceptToken을 사용하여 Accept Token을 검색할 수 있습니다. 아래의 시퀀스 다이어그램은 전체 프로세스를 요약합니다.

Accept-Refuse Flow
Accept-Refuse 흐름.

기술문서 TOP으로 돌아가기