http.sysを使用すると、基盤となるソケットにアクセスできません。httpリクエストを処理し、フラグメントから(フラグメントキャッシュ、メモリ、またはファイルから)応答を構築できます。使用するソケットを完全に制御する必要がある場合(httpリクエストとして開始し、「secret-websocket-handshake」がサポートされなくなった後で、後でWebSocketソケットにアップグレードします。
あなたができることは:全二重システムのようなロケットを使用することです。クライアントはHTTP1.1keep aliveソケットを使用してリクエストを投稿し、http.sysサーバーがそれらのリクエストを受信すると、サーバーからクライアントへのトリガーデータが利用可能になるか、タイムアウトが発生するまで回答を延期できます。これはWebSocketほど堅牢ではありませんが、適度にパフォーマンスが高く、サーバーの反応時間に1〜2ミリ秒しか追加されません(少なくとも私のテストでは)。唯一の問題は、誰かがサーバーに対してブラウザで複数のページを開いていて、ブラウザがページに単一のhttpリクエストを共有させ始めた場合に発生します。このため、最大ポーリングを可能な限り低く抑え、大幅に多くのWebトラフィックを生成しました。
もう1つのオプションは、「socket-code」でWebSocketを実行し、「http.sys-code」を使用してhttpリクエストを実行することでした。これもかなりうまく機能しますが、コードがより複雑になります。