首先介紹下短連結和長連結的差異:
##連接->傳輸數據->關閉連接(推薦學習:PHP編程從入門到精通)
例如HTTP是無狀態的的短鏈接,瀏覽器和伺服器每進行一次HTTP操作,就建立一次連接,但任務結束就中斷連線。
socket.close方法->client接收response封包->client最後會收到server端斷開TCP連接的訊號->client 端斷開TCP連接,具體就是呼叫close方法。
也可以這樣說:短連線是指SOCKET連線後,發送接收完資料後馬上斷開連線。
因為連線後接收了資料就斷了,所以每次資料接受處理不會有連結。這也是HTTP協定無狀態的原因之一。
長連線
連線->傳輸資料->保持連線-> 傳輸資料-> ........... ->直到一方關閉連接,多是客戶端關閉連線。
長連接指建立SOCKET連接後不管是否使用都保持連接,但安全性較差。
每次我們造訪PHP腳本的時候,都是當所有的PHP腳本執行完成後,我們才得到回傳結果。如果我們需要一個腳本持續的運行,那麼我們就要透過php長連接的方式,來達到運行目的。
一般php環境為apache php linux,但由於apache對php連線都有時間限制,一般超過這個連線時間apache伺服器會自動斷掉連線。
這種情況下比較簡單方便的方式就是在php頁面中設定set_time_limit(0)(當然也可以在php.ini設定檔中設置,但是這樣對整個環境產生影響,畢竟我們並不想對所有連接都可以長時間連接,影響服務效能)
每個PHP腳本都限制了執行時間,所以我們需要透過 set_time_limit 來設定一個腳本的執行時間為無限長,然後使用flush()和ob_flush() 來清除伺服器緩衝區,隨時輸出腳本的回傳值。
<?php header("Content-Type: text/plain"); set_time_limit(0); while( true ) { // 持续执行的脚本 flush(); ob_flush(); sleep(5); } ?>
當我們執行後,每隔5秒鐘,我們會執行一次,透過這一方法,我們可以完成很多功能,例如後台監控程序,定時執行功能,日誌分析,資料整理等耗時的操作。
以上是php長連接和短連接區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。