SSE sissejuhatus
SSE tähendab serveri poolt saadetud sündmusi, mis tähendab sõna-sõnalt, et server saadab infot kliendile. SSE on ühesuunaline kanal,Server saab infot saata ainult kliendileKlient saab SSE päringut vastu võtta alles pärast esimest käivitamist ega saa vastata.
SSE peamised omadused hõlmavad:
- Kasutusmugavus: SSE kasutab tekstipõhiseid andmeformaate nagu lihttekst, JSON jne, mis teeb andmete saatmise ja parsimise suhteliselt lihtsaks.
- Ühesuunaline suhtlus: SSE toetab ühesuunalist suhtlust serveri ja kliendi vahel, kus server saab aktiivselt andmeid kliendile edastada, samal ajal kui klient saab andmeid vastu võtta ainult nii.
- Reaalajas: SSE loob pikaajalised ühendused, võimaldades serveritel saata andmeid klientidele reaalajas ilma sagedaste päringuteta.
SSE vs. WebSocket
WebSocket on veel üks veebitehnoloogia, mida kasutatakse reaalajas kahepoolse suhtluse võimaldamiseks, mis erineb SSE-st mõnes aspektis. Siin on võrdlus SSE ja WebSocketi vahel:
- Andmete suuna suunas: SSE on ühesuunaline suhtlus serveri ja kliendi vahel ning server saab aktiivselt andmeid kliendile edastada. WebSocket seevastu on kahepoolne suhtlus, võimaldades reaalajas kahepoolset andmevahetust serveri ja kliendi vahel.
- Ühenduse loomine: SSE kasutab pikki HTTP-põhiseid ühendusi, et luua ühendusi tavapäraste HTTP päringute ja vastuste kaudu, mis võimaldab reaalajas andmete push'i. WebSocketid kasutavad kohandatud protokolle, et võimaldada kahepoolset suhtlust, luues WebSocketi ühendused.
- Ühilduvus: Kuna SSE põhineb HTTP protokollil, saab seda kasutada enamikus kaasaegsetes brauserites ega vaja täiendavaid protokolli uuendusi. WebSocketid on toetatud ka enamikus kaasaegsetes brauserites, kuid mõnes erivõrgukeskkonnas võivad need olla probleemsed.
- Rakendatavad stsenaariumid: SSE sobib olukordadeks, kus server saadab andmeid kliendile reaalajas, näiteks aktsiahindade uuendused, uudiste reaalajas push jne. WebSocket sobib olukordadeks, mis nõuavad reaalajas kahepoolset suhtlust, näiteks vestlusrakendused ja mitme inimese koostöö redigeerimine.
- Sõltuvalt sinu konkreetsetest ärivajadustest ja stsenaariumitest sõltub SSE või WebSocketi valimine sinu tegelikest vajadustest. Kui sul on vaja serverit, mis suunab andmed klientidele ühes suunas ja tahad hoida need lihtsana ja ühilduvana, siis SSE on hea valik. Kui vajad kahepoolset suhtlust või vajad keerukamaid funktsioone ja juhtimist, võib WebSocket olla sinu vajadustele parem.
SSE sündmuste voogu formaat
Sündmuste voog on lihtne tekstiandmevoog, mis tuleks kodeerida UTF-8 formaadis. sündmuste voogSõnum on eraldatud kahe reavahetusega。 Käitumiskommentaaride read, mis algavad kooloniga, ignoreeritakse. Iga väli on esindatud välja nimega, millele järgneb koolon ja seejärel tekstiandmetega selle välja väärtuse kohta.
Väljad on järgmised:
sündmus: String, mida kasutatakse sündmuse tüübi tuvastamiseks. Kui see string on määratud, saadab brauser sündmuse määratud sündmuse nimega vastavale kuulajale; Klient peaks kasutama addEventListener(), et kuulata määratud sündmust. Kui sõnum ei täpsusta sündmuse nime, saab kutsuda sõnumi käitlejat.
andmed: Sõnumi andmeväli. Kui EventSource saab mitu järjestikust rida, mis algavad andmetega:, ühendab ta need, lisades nende vahele reavahetuse. Lõpus olev joonekatkestus eemaldatakse.
Id: Event ID, mis muutub praeguse EventSource objekti sisemise omaduse "Last Event ID" omadusväärtuseks.
Uuesti: aeg taasühenduda. Kui ühendus serveriga kaob, ootab brauser määratud aja ja proovib siis uuesti ühenduda. See peab olema täisarv, mis määrab taasühendamise aja millisekundites. Kui määratakse mitte-täisarvuline väärtus, siis väli ignoreeritakse.
EventSource instants
EventSource'i liides on liides veebisisu ja serveri vahel, et saata sündmusi.
EventHandleri omadus
EventSource.onopen kutsutakse, kui ühendus on avatud. EventSource.onmessage kutsutakse siis, kui sõnum võetakse vastu ilma sündmuse atribuudita. EventSource.onerror kutsutakse ühenduse erandite korral.
SSE Server (ASP.NET Core)
Loo uus ASP.NET Core projekt .NET 8-ga ja kontrolleri kood on järgmine:
Kliendile, kes lingi loob, saada iga teise intervalli järel sõnum.
SSE klient
Kirjuta kliendikoodi Vaate lehel html-i ja js-iga järgmiselt:
Alusta projekti järgmiste efektidega:
Viide:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav. |