2012-07-09 5 views
11

私は、HTML5ウェブソケットがPHPでうまく動作しないというインターネット上の様々な場所で言及していることを見てきました。一方、私はWebSocketとPHPを使用して複数のチュートリアルを参照してくださいと私はいくつかのPHP WebSocketの実装に気付いたhttp://code.google.com/p/phpwebsocket/WebソケットはPHPで使用するのに適していますか?

だから誰もPHPでウェブソケットを使用することについての明確な情報を持っています。彼らはPHPで使えるのですか?JavaやPythonとは対照的にPHPで使用するメリットとデメリットは何ですか?

+2

NodeJSとsocket.ioについて読むことに興味があるかもしれません。あなたのプロジェクトに依存しますが、必要なものを提供するかもしれません:[nodejs.org](http://nodejs.org)[socket.io](http://socket.io) – imperium2335

答えて

7

WebSocketは、複数のイベントドリブン接続を維持する長時間実行スレッド/プロセス用に設計されていますが、PHP(およびそのApacheコホート)は短命の単一プロセス手続きパラダイム(例えば、max_execution_time is commonly set to 30 seconds、セッションはシングルスレッドです)。

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

PHPでは可能ですが、Apacheの別のサーバープロセスを実行する必要があります。別のサーバープロセスを許可するようなホスティングの場合は、WebSocketイベントドリブンプログラミングのために設計されたものです。

何万もの同時デュプレックス接続を行う予定がない場合は、PHPバックエンドでAJAXとSSEの組み合わせを使用する方がよいでしょう。

+0

php-fpmについてはどうですか?そして、JIT技術とphp7?この回答は更新する必要があります。 – LeonanCarvalho

0

最近私はphpwebsocketを試しましたが、現時点では動作しません(php 5.4とchrome)。コードはrevに存在しないハンドシェイクのsecondkeyを参照しています。 13 websocketプロトコルの私は問題を理解するためにRFCを読む時間がありません。

長いポーリングではAJAXよりも洗練されていますが、WebSocketが安定していないと確信していますが、w3cが安定していると待つのが面白いと思います。

関連する問題