メインコンテンツまでスキップ

AMS watchdogプロトコル

Last updated on February 4, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要

このドキュメントでは、専用サーバー(DS)がローカルのwatchdogと通信するために使用することが期待されるプロトコルについて説明します。これは、AccelByte Multiplayer Serversと統合する必要があるが、AccelByte Client SDKでサポートされていない専用サーバーの参考資料として使用できます。

Watchdogへの接続

Watchdogは、起動した各専用サーバー(DS)からのWebSocket接続を待ち受けます。 デフォルトでは、DSはws://localhost:5555/watchdogに接続する必要があります。これはAMSでwatchdogが待ち受けるアドレスです。

DSは、接続時にams-dsid HTTPヘッダーにIDを含めることで、watchdogに自身を識別する必要があります。DS IDはDS_ID環境変数を介して提供され、設定されたコマンドライン引数に${dsid}変数が含まれている場合は、コマンドライン経由でも提供されます。

Watchdog ↔ DSメッセージ

DSとwatchdog間のメッセージはJSON形式です。プロトコルで定義されているメッセージは次のとおりです。

Ready

DSがwatchdogへの接続を確立し、起動作業を完了してゲームセッションに割り当てられる準備ができたら、watchdogに"ready"メッセージを送信することが期待されます。

"ready"メッセージの形式は次のとおりです。

{
"ready": {
"dsid": "string"
}
}

"dsid"の値は、DS_ID環境変数を介して提供され、設定されたコマンドライン引数に${dsid}変数が含まれている場合は、コマンドライン経由でも提供されます。

Heartbeat

DSは15秒ごとにwatchdogに"heartbeat"メッセージを送信することが期待されます。

"heartbeat"メッセージの形式は次のとおりです。

{
"heartbeat": {}
}

セッションタイムアウトのリセット

DSは、いつでもwatchdogにオプションで"reset session timeout"メッセージを送信できます。

ほとんどのシナリオでは、フリート設定で事前に設定された値が通常のゲームセッションに対応するのに十分なセッションタイムアウトを持っている限り、これは必要ありません。ただし、はるかに長時間のゲームセッションや、時折通常のセッションよりもはるかに長く続くゲームセッションがあるシナリオでは有用です。

DSがこのメッセージを送信することを選択した場合、DSが"in session"状態にある場合、メッセージはセッションタイムアウトをリセットします。事前に設定されたタイムアウト期間は、new_timeoutフィールドを使用して上書きできます。これはナノ秒単位で指定されます。new_timeoutが設定されていない場合、タイムアウト期間は事前に設定された値にリセットされ、リセットメッセージが受信された時点からゼロからカウントを開始します。

"reset session timeout"メッセージの形式は次のとおりです。

{
"reset_session_timeout": {
"new_timeout": 0
}
}

Drain

Watchdogは、いつでもDSに"drain"メッセージを送信して、AMSがノード上のDSがホストする既存のゲームセッションが終了した後にノードを回収したいことを示すことができます。 DSがdrainシグナルを処理することが期待される方法の詳細については、Listening to the drain signalを参照してください。

"drain"シグナルの形式は次のとおりです。

{
"drain": {}
}