搜尋
首頁後端開發PHP問題php長連接和短連接區別

php長連接和短連接區別

Sep 12, 2019 am 09:40 AM
php

首先介紹下短連結和長連結的差異:

php長連接和短連接區別

##連接->傳輸數據->關閉連接(推薦學習: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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版

SublimeText3 英文版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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