成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

http如何像tcp一樣實時的收消息?

開發 開發工具
http如何像tcp一樣實時的收消息?今天就讓我們來講一講。

[[172748]]

http如何像tcp一樣實時的收消息?

一、webim如何實現消息推送

webim通常有三種方式實現推送通道:

1)WebSocket

2)FlashSocket

3)http輪詢

其中1)和2)是用Tcp長連接實現的,其消息的實時性可以通過tcp保證。

方案3)才算是webim實現消息推送的“正統”方案,用http短連接輪詢的方式實現“偽長連接”,既然是輪詢,有朋友就對消息的實時性產生了質疑。本文要解答,webim使用http長輪詢如何保證消息的絕對實時性。

二、人們為什么會誤解http長輪詢不實時

什么是輪詢?我擦,這個該怎么解釋咧。

舉個栗子,在火車上想上洗手間,擠到洗手間旁,卻發現洗手間有人,于是你只能回座位繼續等。過了N分鐘,又朝洗手間的方向擠過去,卻發現洗手間還是有人,又只能回坐等。這么一而再,再而三的每隔N分鐘去洗手間查看洗手間是否有蹲位,這就是輪詢。

webim用輪詢的方式拉取消息會存在什么問題?

webim每隔N分鐘,輪詢調用 “獲取消息”接口,有可能出現消息的延時,某一時刻剛拉取完消息,突然又產生了一條新消息,這條消息就必須等到N分鐘之后,再次發起“獲取消息”輪詢時,才有機會獲取到。

減小輪詢時間間隔是否能解決消息延時的問題?

減小輪詢時間間隔的確可以縮短延時時間,但也不能保證消息絕對的實時,同時又會產生新的問題,絕大部分的輪詢調用,都沒有消息返回,造成服務端極大的資源浪費。

很多人基于上述直覺,認為webim使用http長輪詢的方式拉取消息,會導致消息有延時,其實,webim的http長輪詢根本不是這么玩的。

三、長輪詢實際怎么玩

消息連接

webim和webserver之間建立一條http連接,專門用作消息通道,這條連接叫http消息連接【見下圖】

 

 

消息連接的4大特性

1)沒有消息到達的時候,這個http消息連接將被夯住,不返回,由于http是短連接,這個http消息連接最多被夯住90秒,就會被斷開(這是瀏覽器或者webserver的行為)

2)在1)的情況下,如果http消息連接被斷開,立馬再發起一個http消息連接【見下圖中的步驟1、2】

 

 

3)在1)和2)的配合下,瀏覽器與webserver之間將永遠有一條消息連接在(極限情況下會出現4)),每次收到消息時,這個消息連接就能及時將消息帶回瀏覽器頁面,并且在返回后,會立馬再發起一個http消息連接【見下圖中的步驟1、2、3】

 

 

4)如果消息到達時,上一個http消息連接正在返回,沒有http消息連接可用(理論上http消息連接的返回是瞬時的,沒有連接可用出現的概率極小),則將消息暫存入消息池中,下一個消息連接到達后(上一個消息連接返回后,根據2)和3)會立馬返回新的消息連接,無等待時間),將消息帶回,并又立刻返回生成新的消息連接【見下圖中的步驟1、2、3、4、5、6、7】

 

 

上述1-4就能夠保證一直有一條http消息連接在,以保證webim消息推送的絕對實時性。

四、結論

webim通過http長輪詢可以保證消息的絕對實時性。這種實時性的保證不是通過增加輪詢頻率來保證的,而是通過夯住http消息連接來保證的,在大部分時間沒有實時消息的情況下,這個http消息連接對于webserver的請求壓力是90秒1次,能夠大大節省了web服務器資源。

文章轉載自微信公眾號“架構師之路”

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2013-08-22 10:17:51

Google大數據業務價值

2015-03-16 12:50:44

2023-04-05 14:19:07

FlinkRedisNoSQL

2017-05-22 10:33:14

PythonJuliaCython

2021-09-07 10:29:11

JavaScript模塊CSS

2016-11-01 15:16:52

QQ狀態即時通訊

2022-12-21 15:56:23

代碼文檔工具

2023-05-23 13:59:41

RustPython程序

2013-12-31 09:19:23

Python調試

2013-12-17 09:02:03

Python調試

2013-07-26 10:15:29

云計算大數據Hadoop

2017-11-06 14:18:03

2020-08-25 08:56:55

Pythonawk字符串

2020-09-30 17:12:09

人工智能技術數據

2015-04-09 11:27:34

2020-12-07 10:10:22

企業文化客戶體驗

2021-05-20 08:37:32

multiprocesPython線程

2011-01-18 10:45:16

喬布斯

2015-02-05 13:27:02

移動開發模塊SDK

2012-06-08 13:47:32

Wndows 8Vista
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人午夜性成交 | 国产婷婷精品av在线 | 一级欧美一级日韩片免费观看 | 自拍偷拍中文字幕 | 国产精久久久久久久妇剪断 | 日日天天 | 亚洲综合在线视频 | 国产精品日韩欧美一区二区三区 | 综合激情av| 亚洲精品国产成人 | 日日夜精品视频 | 国产精品一区二区三区四区 | 国产精品免费一区二区三区四区 | 狠狠操电影| 中文字幕影院 | 五月天综合网 | 久久精选 | 欧美日韩在线高清 | 国产三区在线观看视频 | 国产最好的av国产大片 | 欧美三级在线 | 亚洲在线高清 | 欧美久久一区 | 99精品国产一区二区三区 | 精品一区二区三区四区视频 | 91爱爱·com | 欧美在线不卡 | 精产国产伦理一二三区 | 激情六月丁香婷婷 | 亚洲一区二区在线 | 久久精品综合 | 99成人| 3p视频在线观看 | 久色网| 国产精品一区二区久久精品爱微奶 | 亚洲一区自拍 | 精品亚洲一区二区三区 | 亚洲精品国产成人 | 日韩一区在线播放 | av中文字幕在线播放 | 在线精品一区二区三区 |