Meddelanden server->klient för uppdatering av graf

Permalänk

Meddelanden server->klient för uppdatering av graf

Hej

Har en enklare flask-app som gör ett rest-api för hämtning av info från en postgresql-db samt en enkel klientsida som använder detta för att visa ett gäng grafer. Innehållet i dbn uppdateras då och då och man får idag ladda om sidan i webbläsaren för att uppdatera graferna. Tänkte infoga ett event-baserat uppdateringsbeteende, och funderade i samma veva på att kanske göra om apache2/mod_wsgi flask+klientsida till en node express-sak.

Fann notify-listen för postregsql och testade via
https://edernegrete.medium.com/psql-event-triggers-in-node-js... ; funkar utmärkt (att låta node-app på serversidan lyssna på speficik kanal och associerade triggers från postgresql).

Funderar dock över hur enklast uppdatera klienter (som då kan rita om sina grafer). Har inte hittat ett enda exempel på en socket.io-lösning med enkelvägskommunikation. Vet inte om man kan stoppa en slags evighetssak inkl listen under socket.on("connect", () => { } eller om man kan neka events från klienter. Läste om SSE, som verkar mer för mitt ändamål = enkelriktat; däremot kräver det typ http/2 och följdaktligen tydl https (vilket går att ordna, kan ta lite tid med självsignerade cert i hemmamiljön bara tror jag)

Tiden rör sig snabbt och snabbare så det här verkar som ett lämpligt vägskäl att höra med fler om de har erfarenhet av dylikt och kan höja ett varningens finger. Dvs (server: postgresql -> node.js-)--> (klienter: html/js)

Tack för ev svar /
K K

Edit. Hvis ingen roper stopp! så ämnar jag http/2 och https för https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_... https://stackoverflow.com/questions/36249684/simple-way-to-im... .

Förtydligande
Permalänk
Medlem

Jag skulle nog använt socket.io som du skriver eller kanske http polling om det inte behöver uppdateras så ofta.

Permalänk
Skrivet av DarkBob:

Jag skulle nog använt socket.io som du skriver eller kanske http polling om det inte behöver uppdateras så ofta.

Hej, tack för svar, såg det först nu.

Har pusslat ut hur SSE fungerar, tror jag; är inbyggt i språket sedan en längre tid, verkar gå ut på att klienten ska hålla anslutningen öppen potentiellt förevigt och att man för att hjälpa till skickar events som heartbeats med jämnt intervall. EventSource behandlas f.n på ett sätt av alla varianter av FF jag provat (devel, Waterfox, vanliga FF) och i Chromium på ett annat men har en slags lösning som har fungerat i båda utan probs ett par dar. Kan visa om det finns nåt intresse.