Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 4163|Odpoveď: 4

[.NET Core] SSE (1) používa ASP.NET Core ako SSE server

[Kopírovať odkaz]
Zverejnené 5.4.2024 o 11:54:12 | | | |
Úvod do SSE

SSE znamená Server-Sent Events, čo doslova znamená, že server posiela informácie klientovi. SSE je jednosmerný kanál,Server môže klientovi posielať informácie ibaKlient môže prijať SSE požiadavku až po prvom spustení a nemôže odpovedať.



Kľúčové vlastnosti SSE zahŕňajú:

  • Jednoduchosť použitia: SSE používa textové dátové formáty, ako je obyčajný text, JSON a podobne, čo uľahčuje odosielanie a spracovanie dát.
  • Jednosmerná komunikácia: SSE podporuje jednosmernú komunikáciu medzi serverom a klientom, kde server môže aktívne posielať dáta klientovi, zatiaľ čo klient ich môže len prijímať.
  • V reálnom čase: SSE nadväzuje dlhodobé spojenia, ktoré umožňujú serverom posielať dáta klientom v reálnom čase bez častých požiadaviek.


SSE vs. WebSocket

WebSocket je ďalšia webová technológia používaná na umožnenie obojsmernej komunikácie v reálnom čase, ktorá sa v niektorých ohľadoch líši od SSE. Tu je porovnanie medzi SSE a WebSocket:

  • Smerovanie posunu dát: SSE je jednosmerná komunikácia medzi serverom a klientom a server môže aktívne posielať dáta klientovi. WebSocket je naopak obojsmerná komunikácia, ktorá umožňuje obojsmernú výmenu dát v reálnom čase medzi serverom a klientom.
  • Nadväzovanie spojenia: SSE používa dlhé HTTP pripojenia na nadviazanie spojení prostredníctvom bežných HTTP požiadaviek a odpovedí, čím sa prenáša dáta v reálnom čase. WebSockety používajú vlastné protokoly na umožnenie obojsmernej komunikácie nadväzovaním WebSocket spojení.
  • Kompatibilita: Keďže SSE je založené na HTTP protokole, dá sa použiť vo väčšine moderných prehliadačov a nevyžaduje ďalšie aktualizácie protokolu. WebSockety sú podporované aj vo väčšine moderných prehliadačov, no môžu byť problematické v niektorých špeciálnych sieťových prostrediach.
  • Použiteľné scenáre: SSE je vhodný pre situácie, keď server posiela dáta klientovi v reálnom čase, ako sú aktualizácie cien akcií, správy v reálnom čase a podobne. WebSocket je vhodný pre situácie, ktoré vyžadujú obojsmernú komunikáciu v reálnom čase, ako sú chatovacie aplikácie a viacčlenná spolupráca pri úpravách.
  • V závislosti od vašich konkrétnych potrieb a situácií závisí výber SSE alebo WebSocket od vašich skutočných potrieb. Ak potrebujete server len na posielanie dát klientom jedným smerom a chcete to udržať jednoduché a kompatibilné, SSE je dobrá voľba. Ak potrebujete dosiahnuť obojsmernú komunikáciu alebo ak potrebujete pokročilejšie funkcie a ovládanie, WebSocket môže byť pre vaše potreby vhodnejší.


Formát SSE event stream

Event stream je jednoduchý tok textových dát, ktorý by mal byť zakódovaný vo formáte UTF-8. Event streamSpráva je oddelená dvojicou zalomení riadkov。 Komentáre o správaní, ktoré začínajú na dvojbodku, sa ignorujú. Každé pole je reprezentované názvom poľa, nasledovaným dvojbodkou a následne textovými údajmi pre hodnotu tohto poľa.

Polia sú nasledovné:

udalosť: Reťazec používaný na identifikáciu typu udalosti. Ak je tento reťazec špecifikovaný, prehliadač odošle udalosť so špecifikovaným názvom udalosti príslušnému poslucháčovi; Klient by mal použiť addEventListener() na počúvanie špecifikovanej udalosti. Ak správa neuvádza názov udalosti, môže byť zavolaný onmessage handler.
údaje: Dátové pole správy. Keď EventSource prijme viacero po sebe idúcich riadkov začínajúcich dátami:, spája ich a vkladá medzi ne zlom riadku. Zlomenie riadku na konci je odstránené.
Id: Event ID, ktorá sa stáva hodnotou vlastnosti internej vlastnosti aktuálneho objektu EventSource "Last Event ID".
Znova: čas na opätovné spojenie. Ak sa stratí spojenie so serverom, prehliadač počká stanovený čas a potom sa pokúsi znovu pripojiť. Musí to byť celé číslo, ktoré určuje čas na opätovné pripojenie v milisekundách. Ak je špecifikovaná necelá hodnota, pole sa ignoruje.


Inštancia EventSource

Rozhranie EventSource je rozhranie medzi webovým obsahom a serverom na odosielanie udalostí.

Vlastnosť EventHandler

EventSource.onopen sa volá, keď je spojenie otvorené.
EventSource.onmessage sa volá, keď je prijatá správa bez atribútu udalosti.
EventSource.onerror sa volá pri výnimkách spojenia.

SSE Server (ASP.NET jadro)

Vytvorte nový projekt ASP.NET Core s .NET 8 a kód ovládača je nasledovný:


Pre klienta, ktorý nadviaže spojenie, posielajte klientovi správu každých sekundových intervalov.


SSE klient

Napíšte klientsky kód na stránke Zobraziť pomocou HTML a JS nasledovne:


Začnite projekt s nasledujúcimi efektmi:



Referencia:
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Jednoduché porovnanie Garnet cache a Redis vyvinutého pomocou .NET
Budúci:JS počúva kombináciu klávesov ctrl + enter
 Prenajímateľ| Zverejnené 5.4.2024 o 12:03:28 |
Predvolené EventSource API prehliadača ukladá určité obmedzenia na typy povolených požiadaviek: jediné URL parametre, ktoré môžu prenášať, sú a withCredentials, teda:

Nemôžete odovzdať v tele požiadavky: Musíte zakódovať všetky informácie potrebné na vykonanie požiadavky do URL, ktorá je vo väčšine prehliadačov obmedzená na 2000 znakov.
Nemôžete posielať vlastné hlavičky požiadaviek
Môžete urobiť iba požiadavku GET – žiadna iná metóda nie je špecifikovaná.
Ak je spojenie prerušené, nemáte kontrolu nad politikou opakovaných pokusov: prehliadač vám to niekoľkokrát potichu zopakuje a potom zastaví, čo nie je dostatočné pre žiadnu robustnú aplikáciu.


fetch-event-source

Knižnica poskytuje alternatívne rozhranie založené na Fetch API pre používanie udalostí odoslaných serverom. Je plne kompatibilný s formátom event streamu, takže ak už máte server, ktorý tieto udalosti vysiela, môžete ho používať ako predtým. Avšak teraz máte väčšiu kontrolu nad požiadavkami a odpoveďami

Prihlásenie na hypertextový odkaz je viditeľné.
Zverejnené 14.11.2024 o 14:34:25 |
učený
 Prenajímateľ| Zverejnené 2024-12-25 16:36:44 |
Small slag Zverejnené 5.4.2024 o 12:03
Predvolené EventSource API prehliadača ukladá určité obmedzenia na typy povolených požiadaviek: jediná url parametra, ktorú môže prenášať, je withCredentia ...

Skompilujte balík NPM do JavaScriptového skriptu pripraveného na prehliadač
https://www.itsvse.com/thread-10762-1-1.html
 Prenajímateľ| Zverejnené 2024-12-25 16:48:45 |
SSE (2) problém so zdrojom načítania udalostí po prepnutí záložiek prehliadača
https://www.itsvse.com/thread-10906-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com