diff --git a/web/collector/CollectorClient.ts b/web/collector/CollectorClient.ts new file mode 100644 --- /dev/null +++ b/web/collector/CollectorClient.ts @@ -0,0 +1,30 @@ +type Settings = Array<[string,string,string|number]>; + +export class CollectorClient { + private settings: Settings; + constructor(public clientName:string) { + this.settings = []; + this.putLoop(); + } + private async putLoop() { + await this.put(); + setTimeout(() => { + this.putLoop(); + }, 1000); + } + private async put() { + await fetch("/service/collector/attrs", { + method: "PUT", + body: JSON.stringify({ + client: this.clientName, + clientSession: "unused", + sendTime: Date.now() / 1000, + settings: this.settings, + }), + }); + } + public async updateSettings(settings: Settings) { + this.settings = settings; + await this.put() + } +}