Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 30231|Risposta: 1

[Fonte] SignalR non utilizza il protocollo websocket per comunicare

[Copiato link]
Pubblicato su 18/04/2019 17:33:48 | | | |
ASP.NET SignalR è una libreria per sviluppatori ASP.NET che semplifica il processo di aggiunta di funzionalità web in tempo reale alle loro applicazioni. Una funzione web in tempo reale è una funzione in cui il codice server può inviare contenuti a un client connesso non appena diventano disponibili, invece di far aspettare al server che il client richieda nuovi dati.

ASP .NET SignalR è una libreria di classi sotto ASP .NET, che può realizzare comunicazioni in tempo reale nei progetti web ASP .NET (cioè, il client (pagina web) e il lato server possono notificarsi a vicenda in tempo reale e chiamare metodi), SignalR ha tre modalità di trasmissione: LongLooping (long polling), WebSocket (socket HTML5 WEB), Forever Frame ( lunghe connessioni di richiesta che nascondono il frame), può essere esplicitamente specificato nel client WEB o di default (consigliato), se il predefinito viene adottato,SignalR selezionerà automaticamente il metodo di trasmissione appropriato in base all'ambiente del browser

Poiché il caricamento dei dati del sito web è troppo lento, la ragione è che il pacchetto dati è troppo grande, la richiesta di rete è adeguata, si scopre che "ws" è vuoto, e poi si scopre che SignalR non utilizza il protocollo websocket.

Quando ho fatto il debug locale, ho scoperto che il sito web può usare normalmente il protocollo WS, cioè può comunicare normalmente con i websocket, e poi osservare la differenza tra richieste server e rete locale, e ho scoperto che è la seguente:



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

Locali:

{"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}
Alcuni parametri sono originariamente diversi da quelli locali e server, e l'ho trovatoTryWebSocketsparametro, locale è vero, server è falso.



Esaminando le informazioni, si scopre che se SignalR utilizza il protocollo WebSocket, devono essere soddisfatte le seguenti condizioni:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 o Windows 8)
  • La funzione WebSockets è abilitata sul server
  • Supporto per browser WebSocket



Cioè, ho scoperto che la versione IIS sul server è la 7.5,Il protocollo WebSocket non è supportato in IIS 7.5



Collegamenti di riferimento:Il login del link ipertestuale è visibile.




Precedente:WPF Programmer Rest Digital Clock [con codice sorgente]
Prossimo:"Programmatore Pazzo"
Pubblicato su 22/04/2019 09:24:01 |
Cose buone Mark
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com