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

Udsigt: 30231|Svar: 1

[Kilde] SignalR bruger ikke websocket-protokollen til kommunikation

[Kopier link]
Opslået på 18/04/2019 17.33.48 | | | |
ASP.NET SignalR er et bibliotek for ASP.NET udviklere, der forenkler processen med at tilføje realtids webfunktionalitet til deres applikationer. En realtids webfunktion er en funktion, hvor serverkode kan sende indhold til en tilsluttet klient, så snart det bliver tilgængeligt, i stedet for at serveren skal vente på, at klienten anmoder om nye data.

ASP .NET SignalR er et klassebibliotek under ASP .NET, som kan realisere realtidskommunikation i ASP .NET-webprojekter (det vil sige, at klienten (websiden) og serversiden kan underrette hinanden i realtid og kaldemetoder), SignalR har tre transmissionstilstande: LongLooping (lang polling), WebSocket (HTML5 WEB-socket), Forever Frame ( lange anmodningsforbindelser, der skjuler rammen), kan eksplicit specificeres i WEB-klienten eller som standard (anbefales), hvis standarden er anvendt,SignalR vælger automatisk den relevante transmissionsmetode baseret på browserens miljø

Fordi websitets dataindlæsning er for langsom, er grunden, at datapakken er for stor, og netværksforespørgslen er egnet, og det viser sig, at "ws" er tom, og så viser det, at SignalR ikke bruger websocket-protokollen.

Da jeg fejlsøgte lokalt, fandt jeg ud af, at hjemmesiden kan bruge WS-protokollen normalt, det vil sige, den kan kommunikere normalt med websockets og derefter observere forskellen mellem server- og lokale netværksforespørgsler, og fandt ud af, 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}
Nogle parametre er oprindeligt anderledes end de lokale og server-parametre, og jeg fandt detTryWebSocketsparameter, lokal er sand, server er falsk.



Ved at se på oplysningerne viser det, at hvis SignalR bruger WebSocket-protokollen, skal følgende betingelser være opfyldt:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 eller Windows 8)
  • WebSockets-funktionen er aktiveret på serveren
  • Understøttelse af browserens WebSockets



Det er, jeg fandt ud af, at IIS-versionen på serveren er 7.5,WebSocket-protokollen understøttes ikke i IIS 7.5



Referencelinks:Hyperlink-login er synlig.




Tidligere:WPF Programmer Rest Digital Clock [med kildekode]
Næste:"Skør programmør"
Opslået på 22/04/2019 09.24.01 |
Gode ting, Mark.
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