sse struct solved

This commit is contained in:
Miki 2024-01-16 10:58:26 +01:00
parent 7520e449b1
commit fcf9328b63
8 changed files with 92 additions and 65 deletions

View file

@ -1,2 +1,4 @@
<h1>Welcome to SvelteKit</h1>
<p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>
<h1>Home</h1>
<a href="/priority">Priority</a>
<a href="/mobile">Mobile</a>
<a href="display">Display</a>

View file

@ -3,12 +3,17 @@
import { onMount } from 'svelte';
import { priority } from '$lib/stores/priority.js';
if (dev) {
let base;
if (dev) {
console.log('Dev mode');
base = 'http://10.39.253.16:8080';
} else {
console.log('Not dev mode');
base = '';
}
const events = ['priority'];
window.document.body.oncontextmenu = function () {
@ -25,7 +30,7 @@
});
function StartSSE() {
let url = '/api/sse?';
let url = base + '/api/sse?';
for (let e in events) {
url += `event=${events[e]}&`;
}
@ -41,7 +46,9 @@
let Msg = JSON.parse(e.data);
console.log(JSON.stringify(Msg));
console.log(`surfers: ${Msg.data.priority}`);
$priority = Msg.data.priority;
$priority.surfers = Msg.data.surfers;
$priority.round = Msg.data.round;
$priority.surfersCount = Msg.data.surfersCount;
});
return () => {
@ -51,10 +58,12 @@
}
async function LoadPriority() {
const res = await fetch(`/api/priority`);
const res = await fetch(`${base}/api/priority`);
const data = await res.json();
console.log(`load priority: ${JSON.stringify(data)}`);
$priority = data.priority;
$priority.surfers = data.surfers;
$priority.round = data.round;
$priority.surfersCount = data.surfersCount;
}
</script>

View file

@ -4,10 +4,14 @@
import { dev } from '$app/environment';
import { priority } from '$lib/stores/priority.js';
if (dev) {
let base;
if (dev) {
console.log('Dev mode');
base = 'http://10.39.253.16:8080';
} else {
console.log('Not dev mode');
base = '';
}
const events = ['priority'];
@ -24,7 +28,7 @@
// }
function StartSSE() {
let url = '/api/sse?';
let url = base + '/api/sse?';
for (let e in events) {
url += `event=${events[e]}&`;
}
@ -36,12 +40,23 @@
console.log(`sse open ${Date.now()}`);
};
sse.onmessage = (e) => {
let Msg = JSON.parse(e.data);
console.log(JSON.stringify(Msg));
console.log(`surfers: ${Msg.data.priority}`);
$priority.surfers = Msg.data.surfers;
$priority.round = Msg.data.round;
$priority.surfersCount = Msg.data.surfersCount;
};
sse.addEventListener('priority', (e) => {
let Msg = JSON.parse(e.data);
console.log(JSON.stringify(Msg));
console.log(`surfers: ${Msg.data.priority}`);
$priority = Msg.data.priority;
SaveSession();
$priority.surfers = Msg.data.surfers;
$priority.round = Msg.data.round;
$priority.surfersCount = Msg.data.surfersCount;
// SaveSession();
});
return () => {
@ -50,28 +65,27 @@
};
}
function SaveSession() {
window.sessionStorage.setItem('status', true);
window.sessionStorage.setItem('priority', JSON.stringify($priority));
console.log(`saved: ${JSON.stringify($priority)}`);
}
// function SaveSession() {
// window.sessionStorage.setItem('status', true);
// window.sessionStorage.setItem('priority', JSON.stringify($priority));
// console.log(`saved: ${JSON.stringify($priority)}`);
// }
async function LoadPriority() {
const res = await fetch(`/api/priority`);
const res = await fetch(`${base}/api/priority`);
const data = await res.json();
console.log(`load priority: ${JSON.stringify(data)}`);
$priority = data.priority;
$priority.surfers = data.surfers;
$priority.round = data.round;
$priority.surfersCount = data.surfersCount;
}
onMount(async () => {
if (!dev) {
const sse = StartSSE();
} else {
const sse = 0;
}
const sse = StartSSE();
if (window.sessionStorage.getItem('status')) {
$priority = JSON.parse(window.sessionStorage.getItem('priority'));
let pri = window.sessionStorage.getItem('priority')
if (pri) {
$priority = JSON.parse(pri);
console.log(`loaded: ${JSON.stringify($priority)}`);
}

View file

@ -21,16 +21,13 @@
let footer_height = 8;
$: setup_height = (100 - footer_height) / $priority.surfersCount - 2.2 / $priority.surfersCount;
$: if ($priority.surfers) {
SaveToLocalCahe();
}
// $: if ($priority.surfers) {
// SaveToLocalCahe();
// }
onMount(async () => {
let status = window.sessionStorage.getItem('status');
if (status) {
LoadFromLocalCache();
// console.log(`loaded: ${JSON.stringify($priority.surfers)}`);
}
LoadFromLocalCache();
console.log(`loaded: ${JSON.stringify($priority)}`);
});
function hasDuplicateColors() {
@ -65,6 +62,7 @@
}
ResetPriority();
start = true;
SaveToLocalCahe();
SendPriority();
}
@ -90,23 +88,44 @@
function ResetLocalCache() {
console.log('ResetLocalCache');
window.sessionStorage.clear();
window.sessionStorage.setItem('status', false);
console.log(`reset cache: ${JSON.parse(window.sessionStorage.getItem('priority'))}`);
priority.reset();
SendPriority();
console.log(`reset store: ${$priority}`);
// SendPriority();
}
function SaveToLocalCahe() {
window.sessionStorage.setItem('status', true);
window.sessionStorage.setItem('priority', JSON.stringify($priority));
window.sessionStorage.setItem('start', JSON.stringify(start));
console.log(`update cache: ${JSON.stringify($priority)}`);
}
function LoadFromLocalCache() {
$priority = JSON.parse(window.sessionStorage.getItem('priority'));
start = JSON.parse(window.sessionStorage.getItem('start'));
console.log(`load cache: ${JSON.stringify($priority)}`);
let pri = window.sessionStorage.getItem('priority')
if (pri) {
$priority = JSON.parse(pri);
start = JSON.parse(window.sessionStorage.getItem('start'));
console.log(`load cache: ${JSON.stringify($priority)} - ${start}`);
} else {
console.log(`no cache found`);
}
}
async function SendPriority() {
if (dev) {
return;
}
const res = await fetch(`/api/priority`, {
method: 'POST',
body: JSON.stringify({
surfers: $priority.surfers,
round: $priority.round,
surfersCount: $priority.surfersCount
}),
headers: {
'Content-Type': 'application/json'
}
});
console.log(`SendPriority: ${JSON.stringify($priority)}`);
}
async function ChangePriority(id) {
@ -167,22 +186,6 @@
SendPriority();
}
async function SendPriority() {
if (dev) {
return;
}
const res = await fetch(`/api/priority`, {
method: 'POST',
body: JSON.stringify({
piority: $priority
}),
headers: {
'Content-Type': 'application/json'
}
});
console.log(`SendPriority: ${JSON.stringify($priority)}`);
}
</script>
<svelte:head>