서버 상태 점검 방법

서버가 게임 안에서 제대로 작동하는지 확인해야 할 때가 있습니다.

이때 노드 수를 알면 마스터 서버의 상태를 확인할 수 있습니다. 방 서버가 마스터 서버에 몇 개나 연결되어 있는지 알 수 있기 때문입니다. 노드 수를 알려면 서버에 연결한 후 NodeClient 인스턴스의 GetCount() 메서드를 호출하면 됩니다.

public void Connect() {
    StrixNetwork.instance.applicationId = "00000000-0000-0000-0000-000000000000";
    StrixNetwork.instance.ConnectMasterServer(
        "000000000000000000000000.game.strixcloud.net",
        OnConnectCallback,
        OnConnectFailedCallback
    );
}

// 마스터 서버에 연결 성공하면 콜백 함수 호출
private void OnConnectCallback(StrixNetworkConnectEventArgs args) {
    Debug.Log("Connection established");

    StrixNetwork.instance.masterSession.nodeClient.GetCount(
        new GetCountMessage<CustomizableMatchServerNode>(),
        response => {
            Debug.Log("Node count " + response.Result.GetCount());
        }, null);
}

// 마스터 서버에 연결 실패하면 콜백 함수 호출
private void OnConnectFailedCallback(StrixNetworkConnectFailedEventArgs args) {
    Debug.Log("Connect failed. error = " + args.cause);
}

여기서 StrixNetwork는 Strix API와 인터페이스하는 싱글톤 클래스입니다.

함수 GetCount()는 OnConnectCallback() 콜백 함수 안에서 호출해야 합니다. GetCount()는 연결이 완료된 후에만 호출할 수 있습니다.