summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorJomar Milan <jomarm@jomarm.com>2026-06-02 21:15:27 -0700
committerJomar Milan <jomarm@jomarm.com>2026-06-02 21:15:27 -0700
commitec2097b11f93ad968e171c0e961e0e06652ce44b (patch)
treed404d2b7a021b57e19d2f668ae463ff311b4a988 /assets
parenta2e55df0eeea9709175dd0a26c1e09bdaa60841a (diff)
Implement play websocket handshake
Diffstat (limited to 'assets')
-rw-r--r--assets/session.js27
1 files changed, 26 insertions, 1 deletions
diff --git a/assets/session.js b/assets/session.js
index 7d00838..c607594 100644
--- a/assets/session.js
+++ b/assets/session.js
@@ -4,7 +4,32 @@ const id = document.getElementById('session-script').dataset.id;
const websocket = new WebSocket(`/session/${id}/play`);
websocket.addEventListener('open', () => {
- colorSelect.disabled = false;
+ websocket.send(JSON.stringify({
+ "Initialize": { id }
+ }));
+});
+
+websocket.addEventListener('message', (event) => {
+ const message = JSON.parse(event.data);
+
+ if (Object.hasOwn(message, 'Initialize')) {
+ const payload = message.Initialize;
+ for (let element in Array.from(colorSelect.getElementsByClassName('color-select-colors'))) {
+ element.remove();
+ }
+ payload.colors.forEach((color) => {
+ const selection = document.createElement('option');
+ selection.value = color;
+ selection.innerText = color;
+ selection.classList.add('color-select-colors');
+ colorSelect.appendChild(selection);
+ });
+ colorSelect.disabled = false;
+ }
+});
+
+websocket.addEventListener('close', () => {
+ colorSelect.disabled = true;
});
colorSelect.addEventListener('change', () => {