提供元: Microsoft
互換性
バージョン | メモ |
---|---|
IIS 8.0 | WebSocket プロトコルは IIS 8.0 で導入されました。 |
IIS 7.5 | WebSocket プロトコルは IIS 7.5 ではサポートされていませんでした。 |
IIS 7.0 | WebSocket プロトコルは IIS 7.0 ではサポートされていませんでした。 |
問題
HTTP の制限事項の 1 つは、一方向の通信方法として設計されたことです。 ただし、最新の Web ベースのアプリケーションの多くは、最適に機能するために、リアルタイムの双方向通信をもっと多く必要としています。
解決策
Windows Server 2012 および Windows 8 のリリースをもって、インターネット インフォメーション サービス (IIS) 8.0 により WebSocket プロトコルのサポートが追加されました。
WebSocket プロトコルは RFC 6455 に定義されているオープン標準であり、開発者はこの機能を利用し、クライアントとサーバー間でインターネット経由の双方向通信を実装するアプリケーションを作成できます。 WebSocket プロトコルの詳細については、次の記事を参照してください。
- WebSocket
https://msdn.microsoft.com/hh673567.aspx - WebSockets: 安定しており、開発者が使用できる状態にある
https://msdn.microsoft.com/hh969243.aspx
ステップ バイ ステップの手順
Windows Server 2012 で WebSocket プロトコルのサポートを有効にするには、次の手順に従います。
- サーバー マネージャーを開きます。
- [管理] メニューで [役割と機能の追加] をクリックします。
- [役割ベースまたは機能ベースのインストール]を選択し、[次へ] をクリックします。
- 適切なサーバーを選択し (既定では、ローカル サーバーが選択されます)、[次へ] をクリックします。
- [役割] ツリーで [Web サーバー (IIS)] を展開し、[Web サーバー]、[アプリケーション開発] の順に展開します。
- [WebSocket プロトコル] を選択し、[次へ] をクリックします。
- 追加の機能が不要な場合は、[次へ] をクリックします。
- [インストール] をクリックします。
- インストールが完了したら、[閉じる] をクリックしてウィザードを終了します。
問題
node.js で socket.io を使用する場合に WebSocket を無効にする
サイトで node.js の socket.io で WebSocket サポートを使用している場合、次のスニペットを web.config または applicationHost.config に追加し、既定の IIS WebSocket モジュールを無効にする必要があります。これが行われなければ、IIS WebSocket モジュールでは、このタスクを node.js (そしてアプリケーション) にフォールスルーするのではなく、WebSocket 通信の処理を試みます。 これにより、サイトにアクセスしようとすると予期しないエラーが発生します。
<system.webServer>
...
<webSocket enabled="false"/>
</system.webServer>
まとめ
IIS 8.0 では、インターネット経由での動的な双方向通信を可能にする WebSocket プロトコルのサポートが追加されました。 追加情報については、次の URL をご覧ください。
- Windows 8 の WebSocket の概要
http://www.paulbatum.com/2011/09/getting-started-with-websockets-in.html - IIS と WebSocket
https://blogs.iis.net/jennylaw/archive/2012/09/05/iis-and-websockets.aspx - System.Net.WebSockets 名前空間
https://learn.microsoft.com/dotnet/api/system.net.websockets