Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 4163|Svar: 4

[.NET Core] SSE (1) bruger ASP.NET Core som SSE-server

[Kopier link]
Opslået den 5-4-2024 11:54:12 | | | |
SSE Introduktion

SSE står for Server-Sendte Events, hvilket bogstaveligt talt betyder, at serveren sender information til klienten. SSE er en envejskanal,Serveren kan kun sende information til klientenKlienten kan kun modtage SSE-anmodningen efter første gang og kan ikke svare.



Nøglefunktioner i SSE inkluderer:

  • Brugervenlighed: SSE bruger tekstbaserede dataformater som almindelig tekst, JSON osv., hvilket gør det relativt nemt at sende og parse data.
  • Envejskommunikation: SSE understøtter envejskommunikation mellem serveren og klienten, hvor serveren aktivt kan sende data til klienten, mens klienten kun kan modtage dataene.
  • Realtid: SSE etablerer langvarige forbindelser, hvilket gør det muligt for servere at sende data til klienterne i realtid uden hyppige forespørgsler.


SSE vs. WebSocket

WebSocket er en anden webteknologi, der bruges til at muliggøre realtids tovejskommunikation, som adskiller sig fra SSE på nogle måder. Her er en sammenligning mellem SSE og WebSocket:

  • Data-skubberetning: SSE er en envejskommunikation mellem serveren og klienten, og serveren kan aktivt sende data til klienten. WebSocket er derimod tovejskommunikation, der muliggør realtids tovejs dataudveksling mellem serveren og klienten.
  • Forbindelsesetablering: SSE bruger lange HTTP-baserede forbindelser til at etablere forbindelser gennem almindelige HTTP-anmodninger og svar, hvilket dermed giver realtidsdatapush. WebSockets bruger brugerdefinerede protokoller til at muliggøre tovejskommunikation ved at etablere WebSocket-forbindelser.
  • Kompatibilitet: Da SSE er baseret på HTTP-protokollen, kan det bruges i de fleste moderne browsere og kræver ikke yderligere protokolopgraderinger. WebSockets understøttes også i langt de fleste moderne browsere, men de kan være problematiske i nogle særlige netværksmiljøer.
  • Relevante scenarier: SSE er velegnet til scenarier, hvor serveren sender data til klienten i realtid, såsom aktiekursopdateringer, nyhedsudsendelser i realtid osv. WebSocket er velegnet til scenarier, der kræver realtids tovejskommunikation, såsom chatapplikationer og flerpersoners samarbejdende redigering.
  • Afhængigt af dine specifikke forretningsbehov og scenarier afhænger valget af SSE eller WebSocket af dine faktiske behov. Hvis du kun har brug for en server til at sende data til klienterne i én retning og vil holde det enkelt og kompatibelt, er SSE et godt valg. Hvis du har brug for tovejskommunikation, eller hvis du har brug for mere avancerede funktioner og kontrol, kan WebSocket være et bedre match for dine behov.


SSE event stream-format

En hændelsesstrøm er en simpel strøm af tekstdata, som skal kodes i UTF-8-format. BegivenhedsstrømBeskeden adskilles af et par linjeskift。 Adfærdskommentarlinjer, der starter med en kolon, ignoreres. Hvert felt repræsenteres af et feltnavn, efterfulgt af et kolon, og derefter tekstdata for det felts værdi.

Markerne er som følger:

hændelse: En streng, der bruges til at identificere hændelsestypen. Hvis denne streng er specificeret, sender browseren en begivenhed med det angivne begivenhedsnavn til den relevante lytter; Klienten bør bruge addEventListener() til at lytte efter den angivne begivenhed. Hvis en besked ikke angiver et hændelsesnavn, kan onmessage-håndtereren kaldes.
data: Datafeltet i beskeden. Når EventSource modtager flere på hinanden følgende linjer, der starter med data:, sammenkæder den dem og indsætter et linjeskift mellem dem. Linjeskiftet til sidst er fjernet.
id: Event ID, som bliver egenskabsværdien for det nuværende EventSource-objekts interne egenskab "Last Event ID".
Prøv: tiden til at genoprette forbindelsen. Hvis forbindelsen til serveren mistes, vil browseren vente i den angivne tid og derefter forsøge at genoprette forbindelsen. Dette skal være et heltal, der angiver tidspunktet for genforbindelse i millisekunder. Hvis en ikke-heltalsværdi angives, ignoreres feltet.


EventSource-instans

EventSource-grænsefladen er grænsefladen mellem webindholdet og serveren til at sende events.

EventHandler-egenskaben

EventSource.onopen kaldes, når forbindelsen er åben.
EventSource.onmessage kaldes, når en besked modtages uden et event-attribut.
EventSource.onerror kaldes ved forbindelsesundtagelser.

SSE Server (ASP.NET Core)

Opret et nyt ASP.NET Core-projekt med .NET 8, og controllerkoden er som følger:


For klienten, der etablerer forbindelsen, sendes en besked til klienten hvert andet interval.


SSE-klient

Skriv klientkode på View-siden ved hjælp af html og js som følger:


Start projektet med følgende effekter:



Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.




Tidligere:En simpel sammenligning af Garnet cache og Redis udviklet med .NET
Næste:JS lytter efter ctrl + enter-tastenkombinationen
 Udlejer| Opslået den 5-4-2024 12:03:28 |
Standardbrowserens EventSource API pålægger visse begrænsninger på de typer forespørgsler, der må foretages: de eneste parameter-urls, der må sendes ind, er og withCredentials, derfor:

Du kan ikke sende anmodningskroppen ind: Du skal kode al den information, der er nødvendig for at udføre forespørgslen i URL'en, som er begrænset til 2000 tegn i de fleste browsere.
Du kan ikke sende brugerdefinerede anmodningsheadere ind
Du kan kun lave en GET-anmodning – ingen anden metode kan specificeres.
Hvis forbindelsen bliver afbrudt, har du ingen kontrol over genprøvningspolitikken: browseren prøver lydløst for dig et par gange og stopper så, hvilket ikke er godt nok for nogen form for robust applikation.


hent-begivenhedskilde

Biblioteket tilbyder et alternativt interface baseret på Fetch API'et til brug af serversendte begivenheder. Den er fuldt kompatibel med event-stream-formatet, så hvis du allerede har en server, der sender disse events, kan du bruge den som før. Men nu har du mere kontrol over anmodninger og svar

Hyperlink-login er synlig.
Opslået den 14-11-2024 kl. 14:34:25 |
klog
 Udlejer| Opslået den 25-12-2024 kl. 16:36:44 |
Lille slagg Opslået den 2024-4-5 12:03
Standardbrowserens EventSource API pålægger nogle begrænsninger på de typer forespørgsler, der er tilladt: den eneste parameter-url, der må sendes ind, er withCredentia ...

Kompil NPM-pakken til et browser-klar JavaScript-script
https://www.itsvse.com/thread-10762-1-1.html
 Udlejer| Opslået den 25-12-2024 16:48:45 |
SSE (2) fetch-event-source genforbindelsesproblem efter skift af browserfaner
https://www.itsvse.com/thread-10906-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com