Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 30231|Odpoveď: 1

[Zdroj] SignalR nepoužíva protokol websocket na komunikáciu

[Kopírovať odkaz]
Zverejnené 18. 4. 2019 17:33:48 | | | |
ASP.NET SignalR je knižnica pre ASP.NET vývojárov, ktorá zjednodušuje proces pridávania webových funkcií v reálnom čase do ich aplikácií. Funkcia real-time webu je funkcia, pri ktorej serverový kód môže odoslať obsah pripojenému klientovi hneď, ako je dostupný, namiesto toho, aby server čakal, kým klient požiada o nové dáta.

ASP .NET SignalR je knižnica triedy pod ASP .NET, ktorá dokáže realizovať komunikáciu v reálnom čase v ASP .NET webových projektoch (teda klient (webová stránka) a serverová strana sa môžu navzájom informovať v reálnom čase a volať metódami). SignalR má tri režimy prenosu: LongLooping (dlhé polling), WebSocket (HTML5 WEB socket), Forever Frame ( dlhé požiadavkové spojenia, ktoré rám skrývajú), môžu byť explicitne špecifikované v WEB klientovi alebo predvolene (odporúčané), ak je predvolené nastavené,SignalR automaticky vyberie vhodnú metódu prenosu na základe prostredia prehliadača

Pretože načítanie dát na webovej stránke je príliš pomalé, dôvodom je, že dátový paket je príliš veľký, sieťový požiadavka je vhodná, a zistí sa, že "ws" je prázdny, a potom sa zistí, že SignalR nepoužíva protokol websocket.

Keď som ladil lokálne, zistil som, že webová stránka dokáže bežne používať protokol WS, teda dokáže normálne komunikovať cez websockety, a potom pozorovať rozdiel medzi požiadavkami servera a lokálnej siete, a zistil som, že je to nasledovné:



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

Miestne:

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

{"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}
Niektoré parametre sú pôvodne odlišné od lokálnych a serverových a našiel som toTryWebSocketsParametre, lokálne je pravda, server je nepravda.



Pri pohľade na informácie sa zistilo, že ak SignalR používa protokol WebSocket, musia byť splnené nasledujúce podmienky:

  • ASP.NET 4.5
  • IIS 8.0 (Windows Server 2012 alebo Windows 8)
  • Funkcia WebSockets je na serveri povolená
  • Podpora prehliadačových WebSockets



Zistil som, že verzia IIS na serveri je 7.5,Protokol WebSocket nie je podporovaný v IIS 7.5



Referenčné odkazy:Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:WPF programátor Rest Digital Clock [so zdrojovým kódom]
Budúci:"Bláznivý programátor"
Zverejnené 22. 4. 2019 9:24:01 |
Dobré veci, Mark
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com