diff options
Diffstat (limited to 'client/src/network/MessageQueueReceiver.ts')
-rw-r--r-- | client/src/network/MessageQueueReceiver.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/client/src/network/MessageQueueReceiver.ts b/client/src/network/MessageQueueReceiver.ts new file mode 100644 index 0000000..46ca5cc --- /dev/null +++ b/client/src/network/MessageQueueReceiver.ts @@ -0,0 +1,25 @@ +import type { Message, MessageQueueProvider } from '@engine/network'; +import { parse } from '@engine/utils'; + +export class ClientSocketMessageQueueProvider implements MessageQueueProvider { + private socket: WebSocket; + private messages: Message[]; + + constructor(socket: WebSocket) { + this.socket = socket; + this.messages = []; + + this.socket.addEventListener('message', (e) => { + const messages = parse<Message[]>(e.data); + this.messages = this.messages.concat(messages); + }); + } + + public getNewMessages() { + return this.messages; + } + + public clearMessages() { + this.messages = []; + } +} |