sgcWebSockets 4.5.1 から RCON プロトコルがサポートされています。Source RCON プロトコルは Source Dedicated Server で使用される TCP/IP ベースの通信プロトコルで、「リモートコンソール(RCON)」を介してサーバーにコンソールコマンドを送信できます。RCON の最も一般的な用途は、サーバーが稼働しているマシンに直接アクセスすることなく、サーバーオーナーがゲームサーバーを管理できるようにすることです。
Configuration
RCON_Options では次のプロパティを設定できます。
- Host: サーバーのリモートアドレス。
- Port: サーバーのリッスンポート。
- Password: サーバーに対して認証するためのシークレット文字列。
Connect
サーバーへの接続・切断には Active プロパティを使用します。
Active を True に設定すると、クライアントはサーバーへの接続を試みます。接続できた場合は、提供されたパスワードを使って認証を試みます。
認証リクエストに対するサーバーの応答として OnAuthenticate イベントが呼び出され、Authenticate パラメーターで認証の成否を確認できます。
Send Commands
サーバーへのコマンド送信には ExecCommand メソッドを使用します。応答は OnResponse イベントで受け取ることができます。
oRCON := TsgcLib_RCON.Create(nil);
oRCON.RCON_Options.Host := '127.0.0.1';
oRCON.RCON_Options.Port := 25575;
oRCON.RCON_Options.Password := 'test';
oRCON.Active := True;
procedure OnAuthenticate(Sender: TObject; Authenticated: Boolean; const aPacket: TsgcRCON_Packet);
begin
if Authenticated then
DoLog('#authenticated')
else
DoLog('#not authenticated');
end;
procedure OnResponse(Sender: TObject; const aResponse: string; const aPacket: TsgcRCON_Packet);
begin
DoLog(aResponse);
end;
