GameAnvilコネクタを使うためにはまず、Connectorを作成する必要があります。基本設定とエージェント管理を担当し、内部動作に関するログを見ることができるようにコールバックを登録できます。
次のようにConnectorを作成できます。
import { Connector } from 'GameAnvil/gameanvil';
let connector = Connector.Create();
Connectorが動作に使用する設定があります。この設定はConnector作成時、デフォルト値に設定されますが、必要な場合は次のように直接値を変更できます。
import { Connector } from 'GameAnvil/gameanvil';
let connector = Connector.Create();
connector.config.PacketTimeout = 10;
設定の種類は次のとおりです。
名前 | 説明 | デフォルト値 |
---|---|---|
defaultReqestTimeout | TimeOut基本待機時間設定 | 3(sec) |
packetTimeout | パケットが指定された時間内にアップデートされない場合、接続が解除されたと判断されます。pingIntervalより高く設定する必要があります。 | 5(sec) |
pingInterval | サーバーとの接続を確認するためのping周期設定。 0の場合、使用しない | 3(sec) |
サーバーとやり取りするメッセージを処理するため、Update() 関数を定期的に呼び出す必要があります。Update()関数の呼び出し周期は自由に設定できますが、呼び出さない場合、サーバーからメッセージを受け取ってもその通知を受けることができません。
setInterval(() => { connector.Update(); }, 10);
次のようなシングルトンクラスを作って使うと便利です。
/*
Internet Explorerなど古いバージョンのブラウザでコネクタを使うためには
core-js, regenerator-runtime などのプラグインを使う必要があります。
*/
import 'core-js';
import 'regenerator-runtime';
import { Connector, ProtocolManager } from 'GameAnvil/gameanvil';
export default class GameAnvilManager {
private static manager: GameAnvilManager;
private connector: Connector;
private constructor() {
// プロトコル登録。
ProtocolManager.RegisterProtocol(0, GameMessages);
// コネクタ作成。
this.connector = Connector.Create();
// メッセージループ。10ms毎に呼び出し。
let updater = setInterval(() => { this.connector.Update(); }, 10);
}
static GetInstance() {
if (this.manager == null) {
this.manager = new GameAnvilManager();
}
return this.manager;
}
GetConnectionAgent() {
return this.connector.GetConnectionAgent();
}
GetUserAgent(serviceName: string, subId: string) {
return this.connector.GetUserAgent(serviceName, subId);
}
CreateUserAgent(serviceName: string, subId: string) {
return this.connector.CreateUserAgent(serviceName, subId);
}
}
このコードはサンプルなので、必要に応じて適切に変更して使ってください。これでGameAnvilコネクタの使用準備が完了しました。