您好,登錄后才能下訂單哦!
這篇文章主要介紹php能用來做物聯網嗎,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
PHP不適合做物聯網服務端嗎?
在傳統的思維中,經常會有人告訴你,php不適合用來做物聯網服務端,讓你換java,node,go等其他語言,是的,沒錯傳統意義上的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能用來做物聯網嗎的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。