added SSE
This commit is contained in:
parent
84ef5dd5d6
commit
c690a90c32
4 changed files with 61 additions and 20 deletions
|
@ -26,4 +26,4 @@ function createSurfers() {
|
||||||
|
|
||||||
export const surfers = createSurfers()
|
export const surfers = createSurfers()
|
||||||
|
|
||||||
export const surfersCount = writable(6)
|
export const surfersCount = writable(4)
|
|
@ -1,3 +1,7 @@
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<div class="priority" id="n">2</div>
|
<div class="priority" id="n">2</div>
|
||||||
|
|
|
@ -2,7 +2,15 @@
|
||||||
import { onMount } from 'svelte';
|
import { onMount } from 'svelte';
|
||||||
import { surfers, surfersCount } from '$lib/stores/surfers.js';
|
import { surfers, surfersCount } from '$lib/stores/surfers.js';
|
||||||
import { colors } from '$lib/stores/colors.js';
|
import { colors } from '$lib/stores/colors.js';
|
||||||
import Button from '$lib/button.svelte';
|
import { dev } from '$app/environment';
|
||||||
|
|
||||||
|
if (dev) {
|
||||||
|
console.log('Dev mode');
|
||||||
|
} else {
|
||||||
|
console.log('Not dev mode');
|
||||||
|
}
|
||||||
|
|
||||||
|
const events = ['priority'];
|
||||||
|
|
||||||
$: start = false;
|
$: start = false;
|
||||||
// $: surfers_tot = 6;
|
// $: surfers_tot = 6;
|
||||||
|
@ -25,6 +33,11 @@
|
||||||
start = JSON.parse(window.sessionStorage.getItem('status'));
|
start = JSON.parse(window.sessionStorage.getItem('status'));
|
||||||
console.log(`loaded: ${JSON.stringify($surfers)}`);
|
console.log(`loaded: ${JSON.stringify($surfers)}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dev) {
|
||||||
|
const sse = StartSSE();
|
||||||
|
return sse;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function hasDuplicateColors() {
|
function hasDuplicateColors() {
|
||||||
|
@ -84,7 +97,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
async function ChangePriority(id) {
|
async function ChangePriority(id) {
|
||||||
// let max = $priority.surfers.length;
|
|
||||||
console.log($surfers[id]);
|
console.log($surfers[id]);
|
||||||
if ($surfers[id].priority === 'P') {
|
if ($surfers[id].priority === 'P') {
|
||||||
for (let i=0; i<$surfersCount; i++) {
|
for (let i=0; i<$surfersCount; i++) {
|
||||||
|
@ -138,25 +150,46 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// const res = await fetch(`/api/priority`, {
|
if (!dev) {
|
||||||
// method: 'POST',
|
const res = await fetch(`/api/priority`, {
|
||||||
// body: JSON.stringify({
|
method: 'POST',
|
||||||
// priority: $priority.surfers.map((obj) => obj.priority),
|
body: JSON.stringify({
|
||||||
// mode: 'priority'
|
priority: $surfers.map((obj) => obj.priority)
|
||||||
// }),
|
}),
|
||||||
// headers: {
|
headers: {
|
||||||
// 'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
// }
|
}
|
||||||
// });
|
});
|
||||||
// console.log(
|
console.log(`retval: ${JSON.stringify(res)}`);
|
||||||
// JSON.stringify({
|
}
|
||||||
// priority: $priority.surfers.map((obj) => obj.priority),
|
|
||||||
// mode: 'priority'
|
|
||||||
// })
|
|
||||||
// );
|
|
||||||
// console.log(`retval: ${JSON.stringify(res)}`);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function StartSSE() {
|
||||||
|
let url = '/api/sse?';
|
||||||
|
for (let e in events) {
|
||||||
|
url += `event=${events[e]}&`;
|
||||||
|
}
|
||||||
|
console.log(`sse url: ${url}`);
|
||||||
|
const sse = new EventSource(url);
|
||||||
|
console.log(`subscribe: ${sse}`);
|
||||||
|
|
||||||
|
sse.onopen = () => {
|
||||||
|
console.log(`sse open ${now()}`);
|
||||||
|
};
|
||||||
|
|
||||||
|
sse.addEventListener('priority', (e) => {
|
||||||
|
let Msg = JSON.parse(e.data);
|
||||||
|
console.log(JSON.stringify(Msg));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
sse.close();
|
||||||
|
console.log(`sse closing ${Date.now()}`);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{#if start}
|
{#if start}
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
<script>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
<div class="wall">
|
<div class="wall">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<div class="priority" id="n">2</div>
|
<div class="priority" id="n">2</div>
|
||||||
|
|
Loading…
Add table
Reference in a new issue