SignalRの各種接続方式となる環境設定手順
signalrで各接続方式の確認実施時の方法
signalrと各接続方式などについてはMSのドキュメント参照のこと。
環境はIISのとき
WebSockets
■ IISで機能をインストール
クライアントOSなら、「Windowsの機能の有効化または無効化」より
「インターネットインフォメーションサービス」
->「World Wide Webサービス」
->「アプリケーション開発機能」
->「WebSocketプロトコル」を有効にする。
サーバーOSなら、「役割と機能の追加」より
「Webサーバー」
->「アプリケーション開発」
->「WebSocketプロトコル」を有効にする
ServerSentEvents
■ WebSocketを無効にする(WebSocketプロトコルが有効にされている前提)
IISの接続のツリーより「{マシン名}ホーム」を選択し、「モジュール」を開く
モジュール一覧よりWebSocketModuleを削除
(戻すときは右の操作にある、「ネイティブモジュールの構成」よりチェックを入れてOKを押下)
ForeverFrame
■ WebSocketを無効にする(WebSocketプロトコルが有効にされている前提)
ServerSentEventsの手順でWebSocketsが無効な環境とする
WebSocketが無効となっている環境にIEでアクセスする
(IEがServerSentEventsをサポートしていないため、ForeverFrameが使用される)
LongPolling
■ 他の接続方式を無効化、通信阻害して無効にする
ServerSentEventsの手順でWebSocketsが無効な環境とする
ブロックしたいタブまたは拡張機能の開発者ツールの「Network request blocking」を使用して、ServerSentEventsの接続をブロックする
(signalr/connect?transport=serverSentEventsのようなリクエストをブロック)
以上により、ServerSentEventsのリクエストが失敗してLongPollingで接続される
IEでも何かしらでForeverFrameへのconnectを阻害してあげればLongPollingに落とせるかと思うが、今回は試してない
Discussion