質問の言い換えをお許しください。
1: Node.js は PHP を呼び出すことができますか? それには Apache と同じ欠点があるのではないでしょうか?
1 回限りの PHP スクリプトの呼び出しには、Web ページの呼び出しと同じ一般的な欠点がありますが、余分な処理レイヤーが削除される点が異なります。Apache や任意の Web サーバー自体は非常に薄いレイヤーであるため、多少の時間は節約できますが、節約できる効果はわずかです。
なんらかの理由で PHP が Node.js よりもクライアントのデータ収集に効果的である場合は、アプリケーションに PHP を組み込むのが賢明かもしれません。
2: PHP と WebSockets は相性がいいですか?
従来の PHP スクリプトは通常、リクエストごとに 1 回実行されることを意図しています。大多数の PHP 開発者はイベント駆動型開発に慣れておらず、PHP 自体は (まだ) 非同期処理をサポートしていません。
PHP は高速で成熟したスクリプト言語であり、多くの疣贅や欠点を抱えながらも、ますます高速化しています。(タイピングが弱いのが欠点だと言う人もいれば、タイピングが十分に弱くないのが欠点だと言う人もいます。)
とはいえ、どの言語でも WebSocket を実装するために最低限必要なのは、基本的な TCP ポートを開いてリクエストをリッスンする機能です。PHP の場合、C ソケット ライブラリのシン ラッパーとして実装されます。追加の拡張機能とフレームワークを使用すると、PHP で TCP ソケットを操作する感覚を変えることもできます。
PHP のガベージ コレクタも成熟しています。メモリ リークは、メモリ空間をひどく無視したり (Zend Framework のことを言っています)、自分は賢いと思っている開発者や、ガベージ コレクション システムを簡単に打ち破れることを証明したいと考えている開発者による、意図的なガベージ コレクション システムの妨害行為のいずれかによって発生します。 GC。(ネタバレ: 詳細を知っていれば、どの言語でも簡単です!)
PHP でデーモン (実行時間の長いバックグラウンド プロセス) を設定することは非常に可能であり、非常に簡単です。正常に再起動し、接続を同じスクリプトの新しいバージョン、または異なるバージョンの PHP を実行している同じサーバー上の同じスクリプトに渡すのに十分な動作をさせることさえ可能です。ほんの少し。
相性が良いかどうかは、完全に開発者次第です。PHP を使用して WebSocket サーバーを作成したり、既存のサーバーの 1 つを使用したりすることに意欲的で、能力があり、満足していますか? はい?それなら、あなたはPHP と WebSocket にぴったりです。
3: WebSocket 用の JS ライブラリ
正直なところ、私はそれらを調査していません。
4: PHP と Websocket を使用するためのチュートリアル
私は個人的にこのチュートリアルが好きです: http://www.phpbuilder.com/articles/application-architecture/optimization/creating-real-time-applications-with-php-and-websockets.html
そのチュートリアルの詳細は、その特定の WebSockets サーバーではすぐに時代遅れになるという正当な権限がありますが。(ただし、そのサーバー用にアクティブに維持されるレガシー ブランチは引き続き存在します。)
リンクの腐敗の場合:
PHP-Websockets サーバー (Github で入手可能、近日中に公開予定) を使用して、基本WebSocketServer
抽象クラスを拡張し、抽象メソッドprocess()
、connected()
、およびを実装しclosed()
ます。
ただし、上記のリンクにははるかに優れた情報があるため、リンクが存在する限りそれに従ってください.