PHP はモノのインターネット サーバーには適していませんか?
従来の考え方では、PHP は IoT サーバーには適していないと言われ、Java またはノードに変更するように求められることがよくあります。他の言語、はい、はい、伝統的な意味での PHP は、とても不自由なため、IoT サーバーを作成するのは確かに困難です。もちろん、これはまったくできないという意味ではありません。 (推奨される学習: PHP ビデオ チュートリアル )
たとえば、TCP サーバーを実装する場合は、次の原則に従ってコードを記述する必要がある場合があります:for ($i = 0;$i <= 1;$i++){ $pid = pcntl_fork(); if($pid){ if($i == 0){ $server = stream_socket_server("tcp://127.0.0.1:9501", $errno, $errstr, STREAM_SERVER_BIND); }else if($i == 1){ $tickTime = time()+3600; while (1){ usleep(1); if($tickTime == time()){ //do my tick func } } } }}上記のコードの意味は、あるプロセスでTCPサーバーを作成し、別のプロセスで無限ループで時刻検出を行うことでタイマーロジックを実現することに相当します。 これは非常に面倒に見えますが、一般にプログラミングの基盤が弱い PHPer にとって、維持するのは非常に困難です。もちろん、現時点では、「Workerman はないのではないか? はい、確かに Workerman があります。Workerman は、上記のコード原則を高度にカプセル化し、コード ロジックの実装に集中できるようにする PHP マルチプロセス フレームワークです。したがって、 、PHP がモノのインターネットを行うというのは、実際には誤りであると言われています。 もちろん、現時点では Go 言語にはコルーチンがある、という人もいるかもしれませんが、Workerman を使用してデータベース呼び出しをブロックすると、効率が非常に悪くなり、高い同時実行性を達成するのが難しくなります。しかし実際には、この欠点を補うために可能な限り複数のプロセス、つまりヒープ マシンを使用することができます。もちろん、本当にすべてのペニーを費やしたいのであれば、それは問題ではありません。この時点で、
Swoole4.x のコルーチンである殺人兵器を思いつくことができます。
以上がphp はモノのインターネットを実現できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。