14

インターネットのさまざまな場所で、HTML5 WebSocketはPHPでうまく機能しない、PHPはその性質上、PHPでの使用に適していると言われています。一方、WebSocketでPHPを使用する方法については複数のチュートリアルがあり、 http: //code.google.com/p/phpwebsocket/などのPHPWebSocketの実装に気づきました。

それで、PHPでWebSocketを使用することについての決定的な情報を持っている人はいますか?それらはPHPで使用できますか、JavaやPythonとは対照的にPHPで使用することの長所/短所は何ですか、そしてなぜ私はそれらが一緒にうまく機能しないと言っている多くの人々を読んだのですか?

4

2 に答える 2

9

問題は、WebSockets は、それぞれが複数のイベント駆動型接続を維持する長時間実行されるスレッド/プロセス用に設計されているのに対し、PHP (およびそれは Apache コホート) は短命の単一プロセスの手続き型パラダイム (たとえばmax_execution_time、一般的に 30 秒に設定されている) を中心に設計されていることです。 、およびセッションはシングルスレッドです)。

PHP で WebSockets サーバーの実装を作成することが不可能だと言っているわけではありません。私は、これを正確に実行したプロジェクトが少なくとも 1 つ存在することを認識しています(ただし、この例でさえ、 ではなくコマンド ラインから実行されることに注意してくださいmod_php)。しかし、WebSocket の PHP 実装は、PHP が最も一般的に使用されている安価な共有ホスティングの設定と互換性がない可能性があります。

したがって、PHP ではそれが可能ですが、いずれにしても (Apache から) 別のサーバー プロセスを実行する必要があります。また、別のサーバー プロセスを許可する種類のホスティングを使用している場合は、WebSocket コードを何かで記述する方が簡単です。イベント駆動型プログラミング用に設計されています。

何万もの同時二重接続を提供する予定がない場合は、PHP バックエンドで AJAX とSSEを組み合わせて使用​​することをお勧めします。

于 2012-07-09T19:25:40.703 に答える
-1

私は最近phpwebsocketを試しましたが、現時点では機能しません(php 5.4およびchrome)コードは、revに存在しないハンドシェイクの2番目のキーを参照しています。何が問題なのかを理解するために RFC を読む時間がありません。

このソリューションは、長いポーリングを使用する AJAX よりもエレガントでリアクティブであることは確かですが、現時点では websocket は安定していません。

于 2012-07-12T13:39:51.520 に答える