Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 4163|Válasz: 4

[.NET mag] Az SSE (1) ASP.NET Core-ot használja SSE szerverként

[Linket másol]
Közzétéve: 2024-4-5 11:54:12 | | | |
SSE bevezetés

Az SSE jelentése Server-Sent Events, ami szó szerint azt jelenti, hogy a szerver információt küld a kliensnek. Az SSE egy egyirányú csatorna,A szerver csak információt küldhet az ügyfélnekAz ügyfél csak az első aktiválás után kaphatja meg az SSE kérést, és nem válaszolhat.



Az SSE főbb jellemzői:

  • Használat egyszerűsége: Az SSE szövegalapú adatformátumokat használ, mint például a tiszta szöveg, JSON stb., így viszonylag egyszerűvé teszi az adatok küldését és elemzését.
  • Egyirányú kommunikáció: Az SSE támogatja az egyirányú kommunikációt a szerver és az ügyfél között, ahol a szerver aktívan továbbíthatja az adatokat az ügyfélnek, míg az ügyfél csak az adatokat fogadhatja.
  • Valós időben: Az SSE hosszú távú kapcsolatokat teremt, lehetővé téve a szerverek számára, hogy valós időben továbbítsák az adatokat az ügyfeleknek gyakori kérések nélkül.


SSE vs. WebSocket

A WebSocket egy másik webes technológia, amely valós idejű, kétirányú kommunikációt tesz lehetővé, és bizonyos szempontból eltér az SSE-től. Íme egy összehasonlítás az SSE és a WebSocket között:

  • Adat pusholás iránya: Az SSE egyirányú kommunikáció a szerver és az ügyfél között, és a szerver aktívan tud adatokat továbbítani az ügyfélnek. A WebSocket ezzel szemben kétirányú kommunikáció, lehetővé téve a szerver és az ügyfél közötti valós idejű kétirányú adatcserét.
  • Kapcsolat létrehozása: Az SSE hosszú HTTP-alapú kapcsolatokat használ, hogy hagyományos HTTP kéréseken és válaszokon keresztül kapcsolatokat hozzon létre, így valós idejű adatpusholást eredményez. A WebSocketek egyedi protokollokat használnak a kétirányú kommunikáció lehetővé tételére WebSocket kapcsolatok létrehozásával.
  • Kompatibilitás: Mivel az SSE a HTTP protokollon alapul, a legtöbb modern böngészőben használható, és nem igényel további protokollfrissítéseket. A WebSocketeket a modern böngészők túlnyomó többsége is támogatja, de bizonyos speciális hálózati környezetekben problémásak lehetnek.
  • Alkalmazható forgatókönyvek: Az SSE alkalmas olyan helyzetekre, amikor a szerver valós időben továbbítja az adatokat az ügyfélnek, például részvényárfolyam-frissítések, hírek valós idejű push-olás stb. A WebSocket alkalmas olyan helyzetekhez, amelyek valós idejű, kétirányú kommunikációt igényelnek, például csevegőalkalmazásokhoz és többszemélyes együttműködési szerkesztéshez.
  • Az Ön konkrét üzleti igényeitől és helyzeteitől függően az SSE vagy WebSocket választása a tényleges igényeidtől függ. Ha csak egy szerverre van szükséged, hogy egy irányba továbbítsa az adatokat az ügyfeleknek, és egyszerű, kompatibilis akarod tartani, az SSE jó választás. Ha kétirányú kommunikációra van szükséged, vagy fejlettebb funkciókra és vezérlésre van szükséged, akkor a WebSocket talán jobban megfelel az igényeidnek.


SSE eseményfolyam formátuma

Az eseményfolyam egy egyszerű szöveges adatfolyam, amelyet UTF-8 formátumban kell kódolni. eseményfolyamAz üzenetet két sortörés választja el。 A viselkedési komment sorok, amelyek kettősponttal kezdődnek, figyelmen kívül hagyják. Minden mezőt egy mezőnév, majd egy kettőspont, majd szöveges adat jelenik meg az adott mező értékéről.

A mezők a következők:

esemény: Egy láncsor, amely az eseménytípus azonosítására szolgál. Ha ez a string meg van jelölve, a böngésző egy eseményt küld a megadott eseménynévvel a megfelelő hallgatónak; Az ügyfélnek addEventListener() segítségével kell meghallgatnia a megadott eseményt. Ha egy üzenet nem határoz meg eseménynevet, akkor az onmessage kezelőt hívhatjuk.
adat: Az üzenet adatmezője. Amikor az EventSource több egymást követő sort kap, amelyek data:-val kezdődnek, összekapcsolja őket, és sortörést helyez be közéjük. A végi sorszakadás eltávolítása lesz.
azonosító: Event ID, amely a jelenlegi EventSource objektum belső tulajdonságának "Last Event ID" tulajdonságértékévé válik.
Újra: itt az idő, hogy újra kapcsolódjunk. Ha a szerverrel való kapcsolat elszakad, a böngésző megvárja a megadott időt, majd megpróbálja újra csatlakozni. Ez egy egész számnak kell lennie, amely meghatározza az újracsatlakozás idejét milliszekundumokban. Ha nem egész értéket jelölnek meg, a mezőt figyelmen kívül hagyjuk.


EventSource instance

Az EventSource interfész az a felület a webes tartalom és a szerver között, amely eseményeket küld.

EventHandler tulajdonság

Az EventSource.onopen-t akkor hívják, amikor a kapcsolat nyitva van.
Az EventSource.onmessage akkor hívja meg, amikor egy üzenetet esemény attribútum nélkül fogadnak.
Az EventSource.onerror a kapcsolati kivételekre van hívva.

SSE szerver (ASP.NET Core)

Hozz létre egy új ASP.NET Core projektet .NET 8-cal, és a vezérlőkód a következő:


Az a kliens, amely létrehozza a kapcsolatot, küldjön üzenetet a kliensnek másodpercnként.


SSE kliens

Írj kliens kódot a View oldalon html és js használatával az alábbiakban:


Indítsd el a projektet a következő hatásokkal:



Utalás:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.




Előző:Egy egyszerű összehasonlítás a Garnet gyorsítótár és a Redis között, amelyet a .NET fejlesztésével fejlesztettek ki
Következő:JS meghallgatja a ctrl + enter billentyűkombinációt
 Háziúr| Közzétéve: 2024-4-5 12:03:28 |
Az alapértelmezett böngésző EventSource API bizonyos korlátozásokat szab a megengedett kéréstípusokra: az egyetlen paraméter URL-ek engedélyezettek a és withCredentials (és a withCredentials), ezért:

Nem lehet bevinni a kérelmek testét: az URL-ben minden szükséges információt be kell kódolnod, ami a kérés végrehajtásához szükséges URL-ben, ami a legtöbb böngészőben 2000 karakterre korlátozott.
Nem lehet egyedi kérésfejléceket küldeni
Csak GET kérést lehet kérni – más módszert nem lehet megadni.
Ha a kapcsolat megszakad, nincs kontrollod a retry szabályzat felett: a böngésző némán próbálkozik többször újra, majd megáll, ami nem elég semmilyen robusztus alkalmazáshoz.


fetch-event-source

A könyvtár alternatív interfészt kínál a Fetch API alapján a szerver által küldött események használatához. Teljesen kompatibilis az eseményfolyam formátummal, így ha már van szervered, amely ezeket az eseményeket sugározza, akkor használhatod úgy, mint korábban. Viszont most már nagyobb kontrollod van a kérések és válaszok felett

A hiperlink bejelentkezés látható.
Közzétéve: 2024-11-14 14:34:25 |
tanult
 Háziúr| Közzétéve: 2024-12-25 16:36:44 |
Kis salak Közzétéve: 2024-4-5 12:03
Az alapértelmezett böngésző EventSource API bizonyos korlátozásokat szab a megengedett kéréstípusokra: az egyetlen paraméter URL, amely bejuthat, a withCredentia ...

Fordítsd le az NPM csomagot böngészőre kész JavaScript szkriptbe
https://www.itsvse.com/thread-10762-1-1.html
 Háziúr| Közzétéve: 2024-12-25 16:48:45 |
SSE (2) fetch-event-source újrakapcsolódási probléma böngészőfül váltása után
https://www.itsvse.com/thread-10906-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com