Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 4163|Odgovoriti: 4

[.NET Core] SSE (1) uporablja ASP.NET Core kot SSE strežnik

[Kopiraj povezavo]
Objavljeno 5. 4. 2024 ob 11:54:12 | | | |
Uvod v SSE

SSE pomeni Server-Sent Events, kar dobesedno pomeni, da strežnik pošilja informacije odjemalcu. SSE je enosmerni kanal,Strežnik lahko pošilja informacije le odjemalcuOdjemalec lahko prejme zahtevo SSE šele po prvem sprožitvi in ne more odgovoriti.



Ključne značilnosti SSE vključujejo:

  • Enostavnost uporabe: SSE uporablja besedilne podatkovne formate, kot so navadno besedilo, JSON itd., kar omogoča razmeroma enostavno pošiljanje in razčlenjevanje podatkov.
  • Enosmerna komunikacija: SSE podpira enosmerno komunikacijo med strežnikom in odjemalcem, kjer lahko strežnik aktivno pošilja podatke odjemalcu, medtem ko odjemalec lahko le prejme podatke.
  • V realnem času: SSE vzpostavi dolgoročne povezave, kar strežnikom omogoča, da podatke pošiljajo strankam v realnem času brez pogostih zahtev.


SSE proti WebSocketu

WebSocket je še ena spletna tehnologija, ki omogoča dvosmerno komunikacijo v realnem času in se v nekaterih pogledih razlikuje od SSE. Tukaj je primerjava med SSE in WebSocket:

  • Usmerjanje potiska podatkov: SSE je enosmerna komunikacija med strežnikom in odjemalcem, strežnik pa lahko aktivno pošilja podatke odjemalcu. WebSocket pa je dvosmerna komunikacija, ki omogoča dvosmerno izmenjavo podatkov v realnem času med strežnikom in odjemalcem.
  • Vzpostavljanje povezav: SSE uporablja dolge HTTP-povezave za vzpostavljanje povezav preko običajnih HTTP zahtevkov in odgovorov, s čimer omogoča prenos podatkov v realnem času. WebSocketi uporabljajo prilagojene protokole za omogočanje dvosmerne komunikacije z vzpostavitvijo WebSocket povezav.
  • Združljivost: Ker je SSE osnovan na HTTP protokolu, ga je mogoče uporabljati v večini sodobnih brskalnikov in ne zahteva dodatnih nadgradenj protokola. WebSocketi so podprti tudi v večini sodobnih brskalnikov, vendar so lahko problematični v nekaterih posebnih omrežnih okoljih.
  • Primerni scenariji: SSE je primeren za situacije, kjer strežnik v realnem času pošilja podatke odjemalcu, kot so posodobitve cen delnic, novice v realnem času itd. WebSocket je primeren za situacije, ki zahtevajo dvosmerno komunikacijo v realnem času, kot so klepetalne aplikacije in večosebno sodelovalno urejanje.
  • Glede na vaše specifične poslovne potrebe in scenarije je izbira SSE ali WebSocket odvisna od vaših dejanskih potreb. Če potrebujete strežnik le za pošiljanje podatkov odjemalcem v eno smer in želite, da je vse preprosto in združljivo, je SSE dobra izbira. Če potrebujete dvosmerno komunikacijo ali naprednejše funkcije in nadzor, je WebSocket morda bolj primeren za vaše potrebe.


Format toka dogodkov SSE

Tok dogodkov je preprost tok besedilnih podatkov, ki ga je treba kodirati v formatu UTF-8. Tok dogodkovSporočilo je ločeno z dvema prelomoma vrstic。 Komentarji o vedenju, ki se začnejo z dvopičjem, se ignorirajo. Vsako polje je predstavljeno z imenom polja, ki mu sledi dvopičje in nato besedilni podatki za vrednost tega polja.

Področja so naslednja:

dogodek: Niz, ki se uporablja za identifikacijo vrste dogodka. Če je ta niz določen, brskalnik pošlje dogodek z navedenim imenom ustreznemu poslušalcu; Odjemalec naj uporabi addEventListener() za poslušanje določenega dogodka. Če sporočilo ne določa imena dogodka, se lahko pokliče onmessage handler.
podatki: Podatkovno polje sporočila. Ko EventSource prejme več zaporednih vrstic, ki se začnejo s podatki:, jih združi in med njimi vstavlja prelom vrstice. Prelom vrstice na koncu je odstranjen.
Id: ID dogodka, ki postane vrednost lastnosti notranje lastnosti trenutnega objekta EventSource z naslovom "Zadnji ID dogodka".
Ponoviti: čas za ponovno povezovanje. Če se povezava s strežnikom izgubi, brskalnik počaka določen čas in nato poskuša ponovno vzpostaviti povezavo. To mora biti celo število, ki določa čas za ponovno povezavo v milisekundah. Če je določena neceloštevilska vrednost, se polje prezre.


Instanca EventSource

Vmesnik EventSource je vmesnik med spletno vsebino in strežnikom za pošiljanje dogodkov.

Lastnost EventHandler

EventSource.onopen se pokliče, ko je povezava odprta.
EventSource.onmessage se pokliče, ko je sporočilo sprejeto brez atributa dogodka.
EventSource.onerror se pokliče pri izjemah povezave.

SSE Server (ASP.NET jedro)

Ustvarite nov ASP.NET Core projekt z .NET 8 in koda krmilnika je naslednja:


Za odjemalca, ki vzpostavi povezavo, pošljite sporočilo odjemalcu vsakih sekund.


SSE odjemalec

Napišite kodo za odjemalca na strani Pogled z uporabo html in js na naslednji način:


Projekt začnite z naslednjimi učinki:



Referenčni:
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.




Prejšnji:Preprosta primerjava Garnet predpomnilnika in Redisa, razvitega z .NET
Naslednji:JS posluša kombinacijo tipk ctrl + enter
 Najemodajalec| Objavljeno 5. 4. 2024 ob 12:03:28 |
Privzeti brskalnik EventSource API uvaja nekatere omejitve glede vrst dovoljenih zahtev: edini URL-ji parametrov, ki jih lahko prenesejo, so in withCredentials, torej:

V telesu zahteve ne morete posredovati: Vse informacije, potrebne za izvedbo zahteve, morate zakodirati v URL, ki je v večini brskalnikov omejen na 2000 znakov.
Ne morete prenesti lastnih glav zahtev
Lahko oddate samo zahtevo GET – nobene druge metode ni mogoče določiti.
Če je povezava prekinjena, nimate nadzora nad politiko ponovnega poskusa: brskalnik nekajkrat tiho ponovi in nato preneha, kar ni dovolj dobro za nobeno robustno aplikacijo.


fetch-event-source

Knjižnica ponuja alternativni vmesnik, ki temelji na Fetch API-ju za uporabo dogodkov, ki jih pošilja strežnik. Popolnoma je združljiv s formatom toka dogodkov, tako da če že imate strežnik, ki oddaja te dogodke, ga lahko uporabljate kot prej. Vendar pa imate zdaj več nadzora nad zahtevami in odgovori

Prijava do hiperpovezave je vidna.
Objavljeno 14. 11. 2024 ob 14:34:25 |
Naučil
 Najemodajalec| Objavljeno 25. 12. 2024 ob 16:36:44 |
Majhna žlindra Objavljeno 5. 4. 2024 ob 12:03
Privzeti brskalnik EventSource API uvaja nekatere omejitve glede vrst dovoljenih zahtev: edini parameter url, ki ga lahko prenese, je withCredentia ...

Prevedite NPM paket v JavaScript skripto, pripravljeno za brskalnik
https://www.itsvse.com/thread-10762-1-1.html
 Najemodajalec| Objavljeno 25. 12. 2024 ob 16:48:45 |
SSE (2) Težava z ponovnim povezovanjem z virom priklica dogodka po menjavi zavihkov brskalnika
https://www.itsvse.com/thread-10906-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com