Heim > Artikel > Backend-Entwicklung > Wird PHP für das Internet der Dinge verwendet?
Ist PHP nicht für IoT-Server geeignet?
In der traditionellen Denkweise wird Ihnen oft gesagt, dass PHP nicht für IoT-Server geeignet ist. Lassen Sie sich auf andere Sprachen umstellen Wie Java, Node, Go usw. Ja, es ist wahr, dass es in der Tat schwierig ist, PHP im herkömmlichen Sinne zu einem Internet-of-Things-Server zu machen, weil es so lahm ist kann nicht vollständig durchgeführt werden.
Wenn Sie beispielsweise einen TCP-Server implementieren möchten, müssen Sie möglicherweise Code nach dem folgenden Prinzip schreiben: (Empfohlenes Lernen: PHP-Programmierung vom Einstieg bis zur Kompetenz)
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/>
Die Bedeutung des obigen Codes entspricht der Erstellung eines TCP-Servers in einem Prozess und der Zeiterkennung in einer Endlosschleife in einem anderen Prozess, wodurch die Timer-Logik realisiert wird.
Das sieht wirklich lahm aus, und für PHPer, deren Programmiergrundlage im Allgemeinen schwach ist, ist es wirklich schwierig, es aufrechtzuerhalten.
Natürlich werden einige Leute jetzt sagen, gibt es Workerman nicht? Ja, Workerman verkörpert tatsächlich die oben genannten Codeprinzipien und hilft Ihnen, sich auf die Implementierung zu konzentrieren. Die Codelogik ist ein PHP-Multiprozess-Framework, daher ist es ein Trugschluss zu sagen, dass PHP nicht immer das Internet der Dinge unterstützt.
Natürlich sagen einige Leute derzeit, dass die Go-Sprache über Coroutinen verfügt. Wenn Sie Workerman zum Blockieren von Datenbankaufrufen verwenden, ist die Effizienz sehr schlecht und es ist schwierig, eine hohe Parallelität zu erreichen. Also ja, aber tatsächlich können wir so viele Prozesse wie möglich verwenden, um diesen Mangel auszugleichen, nämlich eine Heap-Maschine.
Natürlich spielt es keine Rolle, wenn Sie wirklich jeden Cent ausgeben möchten. Zu diesem Zeitpunkt können wir uns unsere Killerwaffe einfallen lassen, Das ist die Coroutine von Swoole4.x.
Actor-Modell
Was ist Actor? Einfach ausgedrückt ist Actor ein hochabstraktes Parallelitätsmodell. Die Speicherbereiche sind isoliert untereinander, um die Schwierigkeit der Benutzerprogrammierung und -wartung zu verringern.
Das obige ist der detaillierte Inhalt vonWird PHP für das Internet der Dinge verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!