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