Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 30231|Antwort: 1

[Quelle] SignalR verwendet das Websocket-Protokoll nicht zur Kommunikation

[Link kopieren]
Veröffentlicht am 18.04.2019 17:33:48 | | | |
ASP.NET SignalR ist eine Bibliothek für ASP.NET Entwickler, die den Prozess des Hinzufügens von Echtzeit-Webfunktionen zu ihren Anwendungen vereinfacht. Eine Echtzeit-Webfunktion ist eine Funktion, bei der Servercode Inhalte sofort an einen verbundenen Client senden kann, sobald sie verfügbar sind, anstatt darauf warten zu müssen, dass der Client neue Daten anfordert.

ASP .NET SignalR ist eine Klassenbibliothek unter ASP .NET, die Echtzeitkommunikation in ASP .NET-Webprojekten realisieren kann (das heißt, der Client (Webseite) und die Serverseite können sich in Echtzeit benachrichtigen und Aufrufmethoden benachrichtigen). SignalR verfügt über drei Übertragungsmodi: LongLooping (lange Abfrage), WebSocket (HTML5 WEB-Socket), Forever Frame ( lange Anfragenverbindungen, die den Rahmen verbergen), explizit im WEB-Client angegeben oder standardmäßig (empfohlen), falls der Standard angewendet wird,SignalR wählt automatisch die passende Übertragungsmethode basierend auf der Umgebung des Browsers aus

Da das Laden der Website-Daten zu langsam ist, liegt der Grund darin, dass das Datenpaket zu groß ist und die Netzwerkanfrage geeignet ist, und es stellt sich heraus, dass "ws" leer ist, und dann stellt sich heraus, dass SignalR das Websocket-Protokoll nicht verwendet.

Als ich lokal debuggte, stellte ich fest, dass die Website das WS-Protokoll normal verwenden kann, das heißt, sie kann normal mit Websockets kommunizieren und dann den Unterschied zwischen Server- und lokalen Netzwerkanfragen beobachten, und stellte fest, dass es wie folgt ist:



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

Lokal:

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

{"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}
Einige Parameter unterscheiden sich ursprünglich von lokalen und Serverparametern, und ich habe das gefundenTryWebSocketsParameter, lokal ist wahr, Server ist falsch.



Beim Betrachten der Informationen stellt sich heraus, dass bei Verwendung des WebSocket-Protokolls durch SignalR folgende Bedingungen erfüllt sein müssen:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 oder Windows 8)
  • Die WebSockets-Funktion ist auf dem Server aktiviert
  • Unterstützung für Browser-WebSockets



Das ist, ich habe festgestellt, dass die IIS-Version auf dem Server 7.5 ist,Das WebSocket-Protokoll wird in IIS 7.5 nicht unterstützt



Referenzlinks:Der Hyperlink-Login ist sichtbar.




Vorhergehend:WPF-Programmierer Ruhe-Digitaluhr [mit Quellcode]
Nächster:"Verrückter Programmierer"
Veröffentlicht am 22.04.2019 09:24:01 |
Gute Dinge, Mark,
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com