limited event trigger to max 10 per second

This commit is contained in:
jonny 2021-05-10 21:44:15 +02:00
parent 8e136cebe8
commit 2c4c98b0e5

View File

@ -15,6 +15,8 @@ import { UserInputChatEvent } from "./Events/UserInputChatEvent";
import { GameStateEvent } from './Events/ApiGameStateEvent'; import { GameStateEvent } from './Events/ApiGameStateEvent';
import { deepFreezeClone as deepFreezeClone } from '../utility'; import { deepFreezeClone as deepFreezeClone } from '../utility';
import { HasMovedEvent } from './Events/HasMovedEvent'; import { HasMovedEvent } from './Events/HasMovedEvent';
import { Math } from 'phaser';
/** /**
@ -63,6 +65,7 @@ class IframeListener {
private readonly iframes = new Set<HTMLIFrameElement>(); private readonly iframes = new Set<HTMLIFrameElement>();
private readonly scripts = new Map<string, HTMLIFrameElement>(); private readonly scripts = new Map<string, HTMLIFrameElement>();
private sendMoveEvents: boolean = false; private sendMoveEvents: boolean = false;
private lastMoveTimestamp: number = 0
init() { init() {
window.addEventListener("message", (message: TypedMessageEvent<IframeEvent<keyof IframeEventMap>>) => { window.addEventListener("message", (message: TypedMessageEvent<IframeEvent<keyof IframeEventMap>>) => {
@ -237,10 +240,14 @@ class IframeListener {
hasMovedEvent(event: HasMovedEvent) { hasMovedEvent(event: HasMovedEvent) {
if (this.sendMoveEvents) { if (this.sendMoveEvents) {
this.postMessage({ if (this.lastMoveTimestamp < Date.now() - 100) {
'type': 'hasMovedEvent', this.lastMoveTimestamp = Date.now()
'data': event this.postMessage({
}); 'type': 'hasMovedEvent',
'data': event
});
}
} }
} }