質問: これからangular(or angular2)を始めようと考えているphp技術者です。 まずは勉強がてらangularを使ったリアルタイムチャットシステムを作ってみようと考えています。 phpに慣れているものですから、サーバサイドの技術としてphpを使う予定でいますが、Angularの情報を調べているとnode.jsを使っているケースが多いようにみうけられます。 以下、基本的なことですが調べてもわからなかったためご教授頂けると幸いです。 1.phpを使ってangularを動作させることもできそうですが、node.jsの場合と比べて、実現できない機能がある等、違いがあるのでしょうか。 2.サーバサイドにおいて、phpではなくnode.jsが必須になるケースとはどのような場合なのでしょうか。 3.リアルタイムチャットシステムをangularで実現しようとし場合、phpで対応可能でしょうか。 よろしくお願いいたします。
回答: 1.PHPはサーバサイド、Angularはクライアントサイドなので片方がもう片方に依存することはありません。 2.PHPは基本的に同期処理なのに対して、node.jsは非同期処理に長けています。頻繁にリクエストが発生する大規模リアルタイムチャットシステムのようなものは非同期処理で行ったほうが良いです。同期処理だと一つのメッセージを処理している間、他のメッセージが処理待ちになってしまいます。 後述するようにPHPでもWebsocketを使えばメッセージ処理が可能です。 3.PHPでWebSocketを扱うのにRatchetというライブラリがあります。 何年か前に触ったことありますが、今でもPHPでWebsocketサーバといえばこちらが有名なようです。