Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 30231|Antwoord: 1

[Bron] SignalR gebruikt het websocket-protocol niet om te communiceren

[Link kopiëren]
Geplaatst op 18-04-2019 17:33:48 | | | |
ASP.NET SignalR is een bibliotheek voor ASP.NET ontwikkelaars die het proces van het toevoegen van realtime webfunctionaliteit aan hun applicaties vereenvoudigt. Een realtime webfunctie is een functie waarbij servercode content naar een verbonden client kan sturen zodra deze beschikbaar is, in plaats van dat de server wacht tot de client nieuwe data opvraagt.

ASP .NET SignalR is een klassebibliotheek onder ASP .NET, die realtime communicatie kan realiseren in ASP .NET-webprojecten (dat wil zeggen, de client (webpagina) en de serverzijde kunnen elkaar in realtime op de hoogte stellen en oproepmethoden uitvoeren). SignalR heeft drie transmissiemodi: LongLooping (lange polling), WebSocket (HTML5 WEB-socket), Forever Frame ( lange verzoekverbindingen die het frame verbergen), expliciet kunnen worden gespecificeerd in de WEB-client of standaard (aanbevolen), als de standaard wordt toegepast,SignalR kiest automatisch de juiste transmissiemethode op basis van de omgeving van de browser

Omdat het laden van websitegegevens te traag is, is de reden dat het datapakket te groot is, het netwerkverzoek geschikt is, en blijkt dat "ws" leeg is, en vervolgens blijkt dat SignalR het websocket-protocol niet gebruikt.

Toen ik lokaal debuggede, ontdekte ik dat de website het WS-protocol normaal kan gebruiken, dat wil zeggen, normaal kan communiceren met websockets, en vervolgens het verschil tussen server- en lokale netwerkverzoeken kan observeren, en ik ontdekte dat het als volgt is:



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

Lokaal:

{"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}
Servers:

{"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}
Sommige parameters verschillen oorspronkelijk van de lokale en serverparameters, en ik heb het gevondenTryWebSocketsparameter , lokaal is waar, server is onwaar.



Uit de informatie blijkt dat als SignalR het WebSocket-protocol gebruikt, aan de volgende voorwaarden moet worden voldaan:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 of Windows 8)
  • De WebSockets-functie is ingeschakeld op de server
  • Ondersteuning voor webbrowser WebSockets



Dit is, ik ontdekte dat de IIS-versie op de server 7.5 is,Het WebSocket-protocol wordt niet ondersteund in IIS 7.5



Referentielinks:De hyperlink-login is zichtbaar.




Vorig:WPF Programmeur Rest Digital Clock [met broncode]
Volgend:"Gekke programmeur"
Geplaatst op 22-04-2019 09:24:01 |
Goede dingen Mark
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com