この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 30231|答える: 1

[出典] SignalRは通信にwebsocketプロトコルを使用しません

[リンクをコピー]
掲載地 2019/04/18 17:33:48 | | | |
ASP.NET SignalRは、ASP.NET 開発者向けのライブラリで、アプリケーションにリアルタイムのウェブ機能を追加するプロセスを簡素化します。 リアルタイムウェブ機能とは、サーバーコードがコンテンツが利用可能になった直後に接続されたクライアントにプッシュできる機能であり、サーバーがクライアントの新しいデータ要求を待つ必要がなくなります。

ASP .NET SignalRはASP .NETのクラスライブラリであり、ASP .NETのウェブプロジェクトでリアルタイム通信を実現できます(つまり、クライアント(ウェブページ)とサーバー側がリアルタイムで通知し、メソッドを呼び出すことができます。SignalRには3つの伝送モードがあります:LongLooping(長いポーリング)、WebSocket(HTML5 WEBソケット)、Forever Frame( フレームを隠す長いリクエスト接続は、WEBクライアントで明示的に指定することも、デフォルトが採用されている場合はデフォルトで(推奨)できます。SignalRはブラウザの環境に基づいて自動的に適切な送信方法を選択します

ウェブサイトのデータ読み込みが遅いため、データパケットが大きすぎてネットワークリクエストが適切であり、「ws」が空であることが判明し、さらにSignalRがwebsocketプロトコルを使用していないことが判明します。

ローカルでデバッグしたところ、ウェブサイトは通常WSプロトコルを使えることが分かりました。つまり、Websocketと通常通り通信でき、サーバーとローカルネットワークのリクエストの違いを観察できることがわかりました。そして、以下の通りでした。



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

地元の:

{"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}
サーバー:

{"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}
一部のパラメータは元々ローカルやサーバーのものとは異なっていて、それを見つけましたTryWebSocketsパラメータ、localはtrue、serverはfalseです。



情報を確認すると、SignalRがWebSocketプロトコルを使用している場合、以下の条件を満たす必要があることがわかります。

  • ASP.NET 4.5
  • IIS 8.0(Windows Server 2012 または Windows 8)
  • サーバー上でWebSockets機能が有効になっています
  • ブラウザWebSocketsのサポート



これは、サーバー上のIISバージョンが7.5であることを確認しました。WebSocketプロトコルはIIS 7.5ではサポートされていません



参考リンク:ハイパーリンクのログインが見えます。




先の:WPF プログラマ REST デジタルクロック[ソースコード付き]
次に:「クレイジープログラマー」
掲載地 2019/04/22 9:24:01 |
良いこと、マーク
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com