charityroyale / webapplication

A charity page with CMS
MIT License
3 stars 1 forks source link

Make-A-Wish SSE / WS Connections #96

Closed ammodev closed 2 years ago

ammodev commented 2 years ago

Guten Abend,

auf Grund der kommenden Charity wollten ich und mein Server Team einige, kleinere Events für einen teilnehmenden Streamer auf dessen Community-Server veranstalten. Da diese Events in Minecraft stattfinden sollen, da der Streamer sich hauptsächlich auf dieses Spiel fokussiert, müssten wir eine Möglichkeit haben die Daten der Spenden in das Spiel zu bekommen.

Nach ein wenig durchforsten von euren Repositories haben wir in dieser und der Control Panel Repository nur die Möglichkeit gefunden die aktuelle 2022 URL zu pollen (public static readonly mawUri2022 = 'https://streamer.make-a-wish.at/charityroyale2022/info.json'). Problem hierbei ist natürlich die Zeitverzögerung von, im Control Panel, 15 Sekunden und die größere Menge an Daten.

Sollten wir hingehen und die Pollingzeit auf ~5 Sekunden stellen generiert das für euch natürlich unnötige Serverlast. Vorschlag hier wäre eine SSE oder WS Implementation eurerseits. Das ganze wäre wesentlich ressourcensparender und bspw. durch Socket.IO auch für den "Client" wesentlich besser auszulesen. Dieser könnte sich direkt auf den Raum bspw. "Veni" einschreiben und würde damit auch nur die Events empfangen, welche für ihn interessant sind. Dazu würde durch SSE oder eine WS Verbindung auch das Problem der Zeitverzögerung entfernt werden.

Ich habe absichtlich den "Streamer" oben nur "Streamer" bezeichnet, da dies für alle teilnehmenden eine sinnvolle Implementation wäre. Sollte es nötig sein das Stattfinden von Events zu bestätigen kann ich den Streamer natürlich gerne verlinken und ihm schreiben, dass er sich bitte melden solle.

Bei weiteren Fragen, was die Anfrage angeht einfach melden. Alternativ auch gerne über Discord (Ammo#1553)!

ammodev commented 2 years ago

Vergessen; das ganze ist natürlich kein "Baut das jetzt sofort ein!". Es soll einfach ein Vorschlag für die Zukunft sein, welcher allen das Leben einfacher macht. Jetzt gerade werden wir denke ich weiterhin die Polling Methode verwenden.

lanort commented 2 years ago

Hi @ammodev Alex hier von Make-A-Wish und für die technische Abwicklung der Spenden zuständig.

Für das Overlay / Alerts haben wir einen Webhook, der eine neue Spende geschickt bekommt. Das wäre die einfachste Möglichkeit. Eine zweite Möglichkeit wäre über pusher.com, also websocket. Da gibt es halt das limit mit 100 Usern, aber das wird vermutlich eh nur ein Streamer gleichzeitig sein, also im limit.

Schreibe dir auch noch auf discord (ataub2qf#6305).

lanort commented 2 years ago

Ahh du nimmst keine Freundschaftsanfragen an ^^ Dann musst du mich hinzufügen.

ammodev commented 2 years ago

Freundschaftsanfrage ist gesendet. Allerdings bin ich heute sehr wahrscheinlich nicht mehr am PC und würde morgen erst auf Nachrichten antworten.