Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 30231|Svare: 1

[Kilde] SignalR bruker ikke websocket-protokollen for å kommunisere

[Kopier lenke]
Publisert på 18.04.2019 17:33:48 | | | |
ASP.NET SignalR er et bibliotek for ASP.NET utviklere som forenkler prosessen med å legge til sanntids webfunksjonalitet i applikasjonene sine. En sanntids webfunksjon er en funksjon der serverkode kan sende innhold til en tilkoblet klient så snart det blir tilgjengelig, i stedet for at serveren skal vente på at klienten skal be om ny data.

ASP .NET SignalR er et klassebibliotek under ASP .NET, som kan realisere sanntidskommunikasjon i ASP .NET-webprosjekter (det vil si at klienten (nettsiden) og serversiden kan varsle hverandre i sanntid og kallemetoder). SignalR har tre overføringsmoduser: LongLooping (lang polling), WebSocket (HTML5 WEB-socket), Forever Frame ( lange forespørselsforbindelser som skjuler rammen), kan eksplisitt spesifiseres i WEB-klienten eller som standard (anbefalt), hvis standarden er tatt i bruk,SignalR vil automatisk velge riktig overføringsmetode basert på nettleserens miljø

Fordi datainnlastingen på nettsiden er for treg, er grunnen at datapakken er for stor, og nettverksforespørselen er egnet, og det viser seg at "ws" er tom, og så oppdages det at SignalR ikke bruker websocket-protokollen.

Da jeg feilsøkte lokalt, fant jeg ut at nettstedet kan bruke WS-protokollen normalt, det vil si at det kan kommunisere normalt med websockets, og deretter observere forskjellen mellom server- og lokale nettverksforespørsler, og fant ut at det er som følger:



URL:http://ip/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22positionvehiclehub%22%7D%5D&_=1555578162378

Lokalt:

{"Url":"/signalr","ConnectionToken":"iX0gmz3XDJpQ62b6eiWK16Quaf+LFlD5aHw1k2oC6dKPz7naDuFmc0M7+xiR72ZjJDuNnMvfZyZF72qJK/4g6FOKAsY5C0uCfViOBXPRJVMBczOXTyCKcztIcugmcBq8" ,"ConnectionId":"50598ad3-b138-458c-a58d-b4f84d23c0e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":true," ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
Servere:

{"Url":"/signalr","ConnectionToken":"4JbNUOp5/ju8Fljn29tCsFoTitZXk3XfF3tkuc/OYpaEQPawJHi3U1nTtjcJJzK4mVsOn9nAEECZj7h5732aV7tNJDgsasCon9uQwhqXZC5EAZPrAgASueApAjBCpPpE" ,"ConnectionId":"c46e67b1-4fb4-4345-983f-bf2c391d33e0","KeepAliveTimeout":20.0,"DisconnectTimeout":30.0,"ConnectionTimeout":110.0,"TryWebSockets":false," ProtocolVersion":"1.5","TransportConnectTimeout":5.0,"LongPollDelay":0.0}
Noen parametere er opprinnelig forskjellige fra de lokale og servermessige, og jeg fant detTryWebSocketsparameter, lokal er sann, server er falsk.



Når man ser på informasjonen, finner man at hvis SignalR bruker WebSocket-protokollen, må følgende betingelser være oppfylt:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 eller Windows 8)
  • WebSockets-funksjonen er aktivert på serveren
  • Støtte for nettleser WebSockets



Dette er, jeg fant ut at IIS-versjonen på serveren er 7.5,WebSocket-protokollen støttes ikke i IIS 7.5



Referanselenker:Innloggingen med hyperkoblingen er synlig.




Foregående:WPF-programmerer Rest Digital Clock [med kildekode]
Neste:"Gal programmerer"
Publisert på 22.04.2019 09:24:01 |
Gode ting,.
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com