株式会社Diarkis

トップ > 技術ブログ > MigrateメソッドによるOnOfflineイベントの処理

MigrateメソッドによるOnOfflineイベントの処理

Diarkisのサーバークラスターは水平分散による自動スケーリングが可能という特徴があります。
この特徴はクライアント側から見ると「接続先が増えたり減ったりする」ということになります。

接続先が増える場合、DiarkisのクライアントSDKからREST APIで返されるエンドポイントに接続すればよいだけなので、クライアントは意識する必要はありません。
しかしながら、スケールインが発生する場合は接続しているクライアントは再接続する必要があります。

Diarkisのサーバークラスターがスケールインする場合、スケールインするサーバーに接続されているクライアントに対して OnOffline イベントを発生させます。
クライアントはそのイベントを受け取った場合、再接続する必要があります。

本エントリでは、Diarkisへのサーバークラスターへ安全に再接続するための方法を説明します。

UDPクライアントの例

// This event is raised when the connected server is getting ready to remove itself from the server cluster
udp.OnOffline += HandleDiarkisOnOffline;

// This event is raised when the client connects to the server
udp.OnConnect += HandleDiarkisOnConnect;

private void HandleDiarkisOnOffline()
{
    if (isInGame)
    {
        // If we are in game, we queue the action instead
        queueOutGameActions.Add(() =>
            {
                //re-connect
                udp.Migrate();
            });
        return;
    }
    // re-connect and raise OnConnect
    udp.Migrate();
}

private void HandleDiarkisOnConnect(bool reconnected)
{
    // Connected to the server
}

TCPクライアントの例

// This event is raised when the connected server is getting ready to remove itself from the server cluster
tcp.OnOffline += HandleDiarkisOnOffline;

// This event is raised when the client connects to the server
tcp.OnConnect += HandleDiarkisOnConnect;

private void HandleDiarkisOnOffline()
{
    if (isInGame)
    {
        // If we are in game, we queue the action instead
        queueOutGameActions.Add(() =>
            {
                //re-connect
                tcp.Migrate();
            });
        return;
    }
    // re-connect and raise OnConnect
    udp.Migrate();
}

private void HandleDiarkisOnConnect(bool reconnected)
{
    // Connected to the server
}

※この処理は C# Client SDK v0.1.12 で確認されたものです。

おわりに

Diarkisのサーバークラスターは水平分散による自動スケーリングが可能で、高い耐障害性と拡張性を備えていることが大きな特徴です。
クライアント側ではその特性に合わせて、安全に再接続するための機構が提供されていますので、アプリケーションを実装する側は分散対応のための考慮を最小限にしつつ、作りたいものに集中することができます。

大規模マルチユーザー間通信をDiarkisが実現します

お問い合わせ
このエントリーをはてなブックマークに追加

この記事もおすすめ

Diarkisをもっと知りたい、採用を検討したい場合は以下よりお問い合わせください

お問い合わせ 資料請求
PAGE TOP