PHP는 IoT 서버에 적합하지 않나요?
전통적인 사고에서는 사람들이 PHP가 IoT 서버에 적합하지 않다고 말하고 java, node, go 등 다른 언어로 바꿔달라고 하는 경우가 많습니다. 네, 그게 전통적으로 맞습니다. 물론 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!