WebSocket は、カスタム プロトコルを使用して、最初の HTTP 準拠の接続を全二重ソケットに変換するプロトコルです。
これには 2 つの方法があります。オプション 1 は、Apache などの標準の HTTP サーバーを使用して、最初の HTTP 接続を受け入れることです。その後、この HTTP サーバーの Websocket サポートを使用して、ビジネス コードから Websocket にアップグレードできます。これは、Tomcat や JBoss などのサーバーで行われることです。
オプション 2 は、独自のサーバー ソケットを開き、基本的に PHP 内から独自の HTTP サーバーを作成することです。HTTP の非常に制限されたサブセットを自分で実装し、すべての接続を WebSocket にアップグレードしようとします。これは、PHPWebsocket ライブラリが行うことです。
オプション 1 は PHP と互換性がありません。すべての Web サーバーは PHP を使用して HTML コンテンツを生成します。現在、Websocket への現在の HTTP 接続のアップグレードをサポートしている Web サーバーはありません。
オプション 2 は、GoDaddy や 1Blu などのホスティング プロバイダーと互換性がありません。意味がありません: 独自の Web サーバーを実装しようとしていますが、それらのマシンでは既に Web サーバーが実行されています!
簡単に言うと、ネイティブの WebSocket サポートが Apache に存在しない限り、制御を PHP に転送できるということです。問題を攻撃するさまざまな方法については、websockets Apache サーバーの互換性を参照してください。