C# クライアントでは、SID と暗号化キーを保持したまま別のサーバへ接続を切り替えることが可能です。
この Migrate の機能は OnOffline などのイベントを受けとりサーバの接続を切り替えたい場合などに有効です。
以下の例で Migration の実行方法と処理を説明します。
NOTE: Migrate が成功した場合、OnConnect が発火します。失敗した場合は OnResponse が発火し、接続に失敗した場合は、OnException が発火します。
// This is to capture successful migration to another server
diarkisUdpClient.OnConnect += (bool reconnected) =>
{
// reconnecting should be true when migration was successful
if (reconnected)
{
/* Do something amazing */
}
}
// This is to capture migration failure
diarkisUdpClient.OnResponse += (uint ver, uint cmd, uint status, byte[] payload) =>
{
// This is the response of migration
if (ver == (uint)0 && cmd == (uint)2)
{
// This means migration has failed
if (status != diarkisUdpClient.STATUS_OK)
{
/* Handle error here */
}
}
}
// This is to execute server migration
diarkisUdpClient.Migrate();
サーバの種別を指定して Migrate を実施する
Diarkis のサーバはそれぞれにサーバの種別があります。個々にサーバの種別を指定して設定することが可能です。サーバの種別は同じ種別を持つサーバを複数存在させることも可能です。
Migration はこの種別を指定して実行することが可能です。
NOTE: もし存在しないサーバの種別を指定した場合は Migration は失敗します。この場合 OnResponse が発火します。
string serverType = "MY_AMAZING_UDP_SERVER";
diarkisUdpClient.Migrate(serverType);