Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 4163|Vastaus: 4

[.NET Core] SSE (1) käyttää ASP.NET Corea SSE-palvelimena

[Kopioi linkki]
Julkaistu 2024-4-5 klo 11:54:12 | | | |
SSE:n johdanto

SSE tarkoittaa Server-Sent Events, mikä kirjaimellisesti tarkoittaa, että palvelin lähettää tietoa asiakkaalle. SSE on yksisuuntainen kanava,Palvelin voi lähettää tietoja vain asiakkaalleAsiakas voi vastaanottaa SSE-pyynnön vasta ensimmäisen laukauksen jälkeen, eikä voi vastata.



SSE:n keskeisiä ominaisuuksia ovat:

  • Helppokäyttöisyys: SSE käyttää tekstipohjaisia tietomuotoja, kuten tavallista tekstiä, JSONia jne., mikä tekee datan lähettämisestä ja jäsentämisestä suhteellisen helppoa.
  • Yksisuuntainen viestintä: SSE tukee yksisuuntaista viestintää palvelimen ja asiakkaan välillä, jossa palvelin voi aktiivisesti välittää dataa asiakkaalle, kun taas asiakas voi vastaanottaa vain tiedot.
  • Reaaliaikainen: SSE luo pitkäaikaiset yhteydet, jolloin palvelimet voivat lähettää dataa asiakkaille reaaliajassa ilman toistuvia pyyntöjä.


SSE vs. WebSocket

WebSocket on toinen verkkoteknologia, jota käytetään mahdollistamaan reaaliaikainen kaksisuuntainen viestintä, ja se eroaa SSE:stä monin tavoin. Tässä on vertailu SSE:n ja WebSocketin välillä:

  • Data pushin suunta: SSE on yksisuuntainen viestintä palvelimen ja asiakkaan välillä, ja palvelin voi aktiivisesti siirtää dataa asiakkaalle. WebSocket puolestaan on kaksisuuntainen viestintä, joka mahdollistaa reaaliaikaisen kaksisuuntaisen tiedonvaihdon palvelimen ja asiakkaan välillä.
  • Yhteyden muodostaminen: SSE käyttää pitkiä HTTP-pohjaisia yhteyksiä muodostaakseen yhteyksiä tavallisten HTTP-pyyntöjen ja -vastausten kautta, jolloin datan reaaliaikainen push. WebSocketit käyttävät mukautettuja protokollia mahdollistaakseen kaksisuuntaisen viestinnän muodostamalla WebSocket-yhteydet.
  • Yhteensopivuus: Koska SSE perustuu HTTP-protokollaan, sitä voidaan käyttää useimmissa nykyaikaisissa selaimissa eikä vaadi lisäprotokollapäivityksiä. WebSocketit ovat myös tuettuja suurimmassa osassa nykyaikaisia selaimia, mutta ne voivat olla ongelmallisia joissakin erityisissä verkkoympäristöissä.
  • Soveltuvat skenaariot: SSE sopii tilanteisiin, joissa palvelin lähettää dataa asiakkaalle reaaliajassa, kuten osakekurssipäivitykset, uutiset reaaliaikaisessa pushissa jne. WebSocket sopii tilanteisiin, joissa tarvitaan reaaliaikaista kaksisuuntaista viestintää, kuten chat-sovelluksiin ja monihenkilöiseen yhteistyöhön perustuvaan editointiin.
  • Riippuen yrityksesi tarpeista ja tilanteista, SSE:n tai WebSocketin valinta riippuu todellisista tarpeistasi. Jos tarvitset palvelimen vain siirtääksesi dataa asiakkaille yhteen suuntaan ja haluat pitää sen yksinkertaisena ja yhteensopivana, SSE on hyvä valinta. Jos tarvitset kaksisuuntaista viestintää tai tarvitset kehittyneempiä ominaisuuksia ja ohjausta, WebSocket voi olla parempi valinta tarpeisiisi.


SSE-tapahtumastriimin muoto

Tapahtumavirta on yksinkertainen tekstidatan virta, joka tulee koodata UTF-8-muodossa. tapahtumavirtaViesti on erotettu kahden rivinvaihdon avulla。 Käyttäytymisen kommenttirivit, jotka alkavat kaksoispisteellä, jätetään huomiotta. Jokainen kenttä esitetään kentän nimellä, jota seuraa kaksoispiste ja lopuksi tekstin datalla kyseisen kentän arvosta.

Kentät ovat seuraavat:

tapahtuma: Merkkijono, jota käytetään tapahtumatyypin tunnistamiseen. Jos tämä merkkijono on määritelty, selain lähettää tapahtuman nimellä varustetun tapahtuman oikealle kuuntelijalle; Asiakkaan tulisi käyttää addEventListener():ää kuunnellakseen määriteltyä tapahtumaa. Jos viesti ei määritä tapahtuman nimeä, viestin käsittelijä voidaan kutsua.
data: Viestin datakenttä. Kun EventSource vastaanottaa useita peräkkäisiä rivejä, jotka alkavat data::, se yhdistää ne ja lisää rivinvaihdon niiden väliin. Viivanvaihto lopusta poistetaan.
henkilöllisyystodistus: Event ID, joka muodostaa nykyisen EventSource-objektin sisäisen ominaisuuden "Last Event ID" ominaisuuden arvon.
Yritä: aika ottaa yhteys uudelleen. Jos yhteys palvelimeen katkeaa, selain odottaa määrätyn ajan ja yrittää sitten yhdistää uudelleen. Tämän täytyy olla kokonaisluku, joka määrittelee uudelleenyhdistämisajan millisekunteina. Jos määritellään ei-kokonaislukuarvo, kenttä jätetään huomiotta.


EventSource-instanssi

EventSource-rajapinta on verkkosisällön ja palvelimen välinen rajapinta tapahtumien lähettämiseen.

EventHandler-ominaisuus

EventSource.onopen kutsutaan, kun yhteys on auki.
EventSource.onmessage kutsutaan, kun viesti vastaanotetaan ilman tapahtumaattribuuttia.
EventSource.onerror kutsutaan yhteyspoikkeuksille.

SSE-palvelin (ASP.NET Core)

Luo uusi ASP.NET Core -projekti .NET 8:lla ja ohjainkoodi on seuraava:


Asiakkaalle, joka luo linkin, lähetä viesti asiakkaalle joka toinen välein.


SSE-asiakas

Kirjoita asiakaskoodi Näkymä-sivulle html:llä ja js:llä seuraavasti:


Aloita projekti seuraavilla vaikutuksilla:



Viittaus:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.




Edellinen:Yksinkertainen vertailu Garnet-välimuistin ja Redisin välillä, kehitetty .NET:llä
Seuraava:JS kuuntelee ctrl + enter -näppäinyhdistelmää
 Vuokraisäntä| Julkaistu 2024-4-5 klo 12:03:28 |
Oletusselaimen EventSource API asettaa joitakin rajoituksia sallittujen pyyntöjen tyypeille: ainoat parametrin URL-osoitteet, jotka sallitaan, ovat ja withCredentials, joten seuraavat:

Pyyntörunkoa ei voi syöttää: Sinun täytyy koodata kaikki tarvittavat tiedot pyynnön suorittamiseksi URL-osoitteeseen, joka on useimmissa selaimissa rajoitettu 2000 merkkiin.
Et voi välittää mukautettuja pyyntöotsikoita
Voit tehdä vain GET-pyynnön – muuta menetelmää ei voi määrittää.
Jos yhteys katkaistaan, et voi hallita uudelleenyrityskäytäntöä: selain yrittää hiljaa muutaman kerran ja sitten pysähtyy, mikä ei riitä millekään kestävälle sovellukselle.


Hakutapahtuma-lähde

Kirjasto tarjoaa vaihtoehtoisen käyttöliittymän Fetch API:n pohjalta palvelimen lähettämien tapahtumien käyttöön. Se on täysin yhteensopiva tapahtumavirran formaatin kanssa, joten jos sinulla on jo palvelin, joka lähettää näitä tapahtumia, voit käyttää sitä kuten ennenkin. Nyt sinulla on kuitenkin enemmän kontrollia pyyntöihin ja vastauksiin

Hyperlinkin kirjautuminen on näkyvissä.
Julkaistu 2024-11-14 klo 14:34:25 |
oppinut
 Vuokraisäntä| Julkaistu 2024-12-25 klo 16:36:44 |
Pieni roisto Julkaistu 2024-4-5 klo 12:03
Oletusselaimen EventSource API asettaa joitakin rajoituksia sallittujen pyyntöjen tyypeille: ainoa sallittu parametri URL on withCredentia ...

Käännä NPM-paketti selainvalmiiksi JavaScript-skriptiksi
https://www.itsvse.com/thread-10762-1-1.html
 Vuokraisäntä| Julkaistu 2024-12-25 klo 16:48:45 |
SSE (2) hakutapahtumalähde-yhteysongelma selaimen välilehden vaihdon jälkeen
https://www.itsvse.com/thread-10906-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com