See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 30231|Vastuse: 1

[Allikas] SignalR ei kasuta suhtlemiseks websocket protokolli

[Kopeeri link]
Postitatud 18.04.2019 17:33:48 | | | |
ASP.NET SignalR on ASP.NET arendajatele mõeldud raamatukogu, mis lihtsustab reaalajas veebifunktsionaalsuse lisamist nende rakendustesse. Reaalajas veebifunktsioon on funktsioon, kus serveri kood saab sisu kohe ühendatud kliendile saata, kui see kättesaadavaks muutub, selle asemel et server ootaks, kuni klient taotleb uusi andmeid.

ASP .NET SignalR on klassiraamatukogu ASP .NET all, mis suudab realiseerida reaalajas suhtlust ASP .NET veebiprojektides (st klient (veebileht) ja serveripool saavad üksteist reaalajas ja kõnemeetodites teavitada), SignalR-il on kolm edastusrežiimi: LongLooping (pikk küsitlus), WebSocket (HTML5 WEB pesa), Forever Frame ( pikad päringuühendused, mis varjavad raami), saab WEB kliendis selgesõnaliselt määrata või vaikimisi (soovitatav), kui vaikimisi on kasutusele võetud,SignalR valib automaatselt sobiva edastusviisi vastavalt brauseri keskkonnale

Kuna veebilehe andmete laadimine on liiga aeglane, on põhjuseks see, et andmepakett on liiga suur ja võrgupäring sobib, ning selgub, et "ws" on tühi, ning selgub, et SignalR ei kasuta websocket-protokolli.

Kui ma lokaalselt silusin, avastasin, et veebileht saab kasutada WS protokolli normaalselt, st suhelda normaalselt websocketidega ning seejärel jälgida erinevust serveri ja kohaliku võrgu päringute vahel ning leidsin, et see on järgmine:



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

Kohalikud:

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

{"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}
Mõned parameetrid erinevad algselt kohalikest ja serveritest ning ma leidsin selleTryWebSocketsparameeter, kohalik on tõene, server on vale.



Teavet vaadates selgub, et kui SignalR kasutab WebSocket protokolli, tuleb täita järgmised tingimused:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 või Windows 8)
  • WebSockets funktsioon on serveris lubatud
  • Tugi brauseri WebSocketidele



See tähendab, et leidsin, et IIS-i versioon serveris on 7.5,WebSocket protokolli IIS 7.5 ei toeta



Viitelingid:Hüperlingi sisselogimine on nähtav.




Eelmine:WPF programmeerija puhkedigitaalne kell [lähtekoodiga]
Järgmine:"Hull programmeerija"
Postitatud 22.04.2019 09:24:01 |
Head asjad, Mark
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com