📝

SignalRの各種接続方式となる環境設定手順

2022/02/09に公開

signalrで各接続方式の確認実施時の方法

signalrと各接続方式などについてはMSのドキュメント参照のこと。
https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr

環境は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