ASP.NET SignalR ir bibliotēka ASP.NET izstrādātājiem, kas vienkāršo reāllaika tīmekļa funkcionalitātes pievienošanu savām lietojumprogrammām. Reāllaika tīmekļa līdzeklis ir līdzeklis, kurā servera kods var virzīt saturu uz pievienoto klientu, tiklīdz tas kļūst pieejams, nevis serveris gaida, kamēr klients pieprasa jaunus datus.
ASP .NET SignalR ir klases bibliotēka ASP .NET, kas var realizēt reāllaika saziņu ASP .NET tīmekļa projektos (tas ir, klients (tīmekļa lapa) un servera puse var paziņot viens otram reāllaikā un zvana metodes), SignalR ir trīs pārraides režīmi: LongLooping (ilgstoša aptauja), WebSocket (HTML5 WEB ligzda), Forever Frame ( ilgi pieprasījuma savienojumi, kas slēpj rāmi), var skaidri norādīt WEB klientā vai pēc noklusējuma (ieteicams), ja tiek pieņemts noklusējums,SignalR automātiski izvēlēsies atbilstošo pārraides metodi, pamatojoties uz pārlūkprogrammas vidi。
Tā kā vietnes datu ielāde ir pārāk lēna, iemesls ir tāds, ka datu pakete ir pārāk liela, un tīkla pieprasījums ir piemērots, un tiek konstatēts, ka "ws" ir tukšs, un tad tiek konstatēts, ka SignalR neizmanto websocket protokolu.
Kad es atkļūdoju lokāli, es atklāju, ka vietne var normāli izmantot WS protokolu, tas ir, tā var normāli sazināties ar tīmekļa ligzdām, un pēc tam novērot atšķirību starp servera un vietējā tīkla pieprasījumiem, un konstatēju, ka tas ir šāds:
URL:http://ip/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%7B%22name%22%3A%22positionvehiclehub%22%7D%5D&_=1555578162378
Vietējie:
{"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} Serveri:
{"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} Daži parametri sākotnēji atšķiras no vietējiem un servera parametriem, un es to atraduIzmēģināt WebSocketsparametrs, lokāls ir patiess, serveris ir false.
Aplūkojot informāciju, tiek konstatēts, ka, ja SignalR izmanto WebSocket protokolu, ir jāievēro šādi nosacījumi:
- ASP.NET 4.5
- IIS 8.0 (Windows Server 2012 vai Windows 8)
- WebSockets līdzeklis ir iespējots serverī
- Pārlūkprogrammas WebSockets atbalsts
Tas ir, es atklāju, ka IIS versija serverī ir 7.5,WebSocket protokols netiek atbalstīts programmā IIS 7.5。
Atsauces saites:Hipersaites pieteikšanās ir redzama.
|