サーバーの状態を確認する方法

サーバーが動作しているかどうかをゲーム内から確認したいことがあるかもしれません。

マスターサーバーの状態は、ノード数を取得することで確認できます。これはマスターサーバーに接続されているルームサーバーの数を示します。ノード数を取得するには、サーバーに接続し、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()は、接続の完了後にのみ呼び出すことができます。