diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-05 21:44:37 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-05 21:44:37 -0600 |
commit | d19da30f6dbf316bf89355b9b840a6d77e5435ec (patch) | |
tree | 1c4e406683f197c019edbfa249741798aac1b5b4 /client/src/network/MessagePublisher.ts | |
parent | ba989bd7f86f823e062cfce7437d89495ef527c6 (diff) | |
download | jumpstorm-d19da30f6dbf316bf89355b9b840a6d77e5435ec.tar.gz jumpstorm-d19da30f6dbf316bf89355b9b840a6d77e5435ec.zip |
decrease CSP threshold, move client networking to its own folder
Diffstat (limited to 'client/src/network/MessagePublisher.ts')
-rw-r--r-- | client/src/network/MessagePublisher.ts | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/client/src/network/MessagePublisher.ts b/client/src/network/MessagePublisher.ts new file mode 100644 index 0000000..de105c5 --- /dev/null +++ b/client/src/network/MessagePublisher.ts @@ -0,0 +1,25 @@ +import type { Message, MessagePublisher } from '@engine/network'; +import { stringify } from '@engine/utils'; + +export class ClientSocketMessagePublisher implements MessagePublisher { + private socket: WebSocket; + private messages: Message[]; + + constructor(socket: WebSocket) { + this.socket = socket; + this.messages = []; + } + + public addMessage(message: Message) { + this.messages.push(message); + } + + public publish() { + if (this.socket.readyState == WebSocket.OPEN) { + this.messages.forEach((message: Message) => + this.socket.send(stringify(message)) + ); + this.messages = []; + } + } +} |