長連接是指在一個連接上可以連續發送多個資料包,在連接保持期間,如果沒有資料包發送,需要雙方發鏈路檢測包,多用於操作頻繁,點對點的通訊,而且連線數不能太多情況。
長連線是:
#一、定義
短連接
是指通訊雙方有數據互動時,就建立一個連接,數據發送完成後,則斷開此連接,即每次連接只完成一項業務的發送。
長連線
,指在一個連線上可以連續傳送多個資料包,在連線保留期間,如果沒有資料包傳送,需要雙方發鏈路偵測包。
長連線
多用於操作頻繁,點對點的通訊,而且連線數不能太多情況。每個TCP連接都需要三步握手,這需要時間,如果每個操作都是短連接,再操作的話那麼處理速度會降低很多,所以每個操作完後都不斷開,下次處理時直接發送數據包就OK了,不用建立TCP連線。例如:資料庫的連接用長連接,如果用短連接頻繁的通訊會造成socket錯誤,而且頻繁的socket 創建也是對資源的浪費。
而像WEB網站的http服務一般都用短鏈接,因為長連接對於服務端來說會耗費一定的資源,而像WEB網站這麼頻繁的成千上萬甚至上億客戶端的連接用短連接會更省一些資源,如果用長連接,而且同時有成千上萬的用戶,如果每個用戶都佔用一個連接的話,那可想而知吧。所以並發量大,但每個使用者無需頻繁操作情況下需用短連好。
總之,長連接和短連接的選擇要視情況而定。
相關學習推薦:PHP 程式設計從入門到精通
二、應用程式
(1)、手機推送原理
#手機推播服務的原理很簡單,就是透過建立一條手機與伺服器的連線連結,當有訊息需要傳送到手機時,透過此連結發送即可。推送服務的使用流程雖然略有差別但是大致都和IOS的APNS相似
1、首先是應用程式註冊訊息推送。
2、 IOS跟APNS Server要deviceToken。應用程式接受deviceToken。
3、應用程式將deviceToken傳送給PUSH服務端程式。
4、 服務端程式向APNS服務發送訊息。
5、APNS服務將訊息傳送給iPhone應用程式
(2)、推播方案評估標準推播方案的公認評估採取4s標準:1.Safe(安全) 2. Stable(穩定) 3.Save(省電省流量省成本) 4.Slim(體積小)
1.Safe (安全)
推送方案應支援透傳及各種加密方案,保障訊息傳遞安全。 推送方案的ID系統應該獨立於已有的網站或服務的ID系統,這樣保障用戶在不同手機上登入後的資訊投遞準確性,避免因為取消綁定事件失敗因網路傳輸而造成的訊息誤投送。
2. Stable(穩定)包括兩個部分一個是伺服器端的穩定性,一個是手機端的穩定性。
服務端穩定性,因為使用長連接方案,對伺服器的開銷和要求很大,推送方案對伺服器開發要求很高,海量執行緒連線下的伺服器穩定性是非常具有挑戰性的。一般的評判標準包括:- 同時在線時峰值(一般按照百萬並發連接時伺服器穩定性評測)
###- 高並發時訊息平均延遲時間(一般按照1分鐘處理1百萬個資訊評測)######- 服務穩定性(一般要求全年99.9%以上可用,有備份,有負載平衡等)######鑑於伺服器穩定的開發難度很高,小團隊不建議自己開發,建議使用穩定的第三方推播方案,如個推,蝴蝶等。 ######手機端的穩定性,主要是因為中國的複雜網路狀況及手機型號適配狀況造成手機長時間穩定連網較困難,所以穩定性非常重要,一般的評判標準包括:#### ##- 每日聯網23.5小時以上使用者比例(表徵連網穩定性)######- 訊息發送後9小時內收到率(表徵到達率)######一般來說,推播方案要做網路的分運營商,分省,分機型適配,自己開發工作量較大#########3.Save(節省)#########省電應注意CPU休眠,一般用服務縮短待機時間百分比評判######省流量應注意協議的修改和冗餘資料包的處理,一般用空載待機月流量評判######省成本應考慮單一伺服器承載同時連線數,可承載同時連線數越多成本越低,業內頂尖水準為個推的單一伺服器50萬連線#########4.Slim(體積小)### ###推送服務應該體積盡量小,不影響主程式的大小和複雜度,一般以小於300K為宜。
以上是長連接是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!