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ó. |