亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種客戶端與服務(wù)器連接狀態(tài)的檢測(cè)方法與流程

文檔序號(hào):12865889閱讀:2882來(lái)源:國(guó)知局

本發(fā)明屬于通信技術(shù)領(lǐng)域,特別涉及一種檢測(cè)客戶端與服務(wù)器之間連接狀態(tài)的方法。



背景技術(shù):

在cs架構(gòu)的程序中,服務(wù)器主要提供數(shù)據(jù)管理、數(shù)據(jù)共享、數(shù)據(jù)以及系統(tǒng)維護(hù)和并發(fā)控制客戶端。客戶端需要針對(duì)用戶具體的業(yè)務(wù)與服務(wù)器建立連接,在客戶端與服務(wù)器連接前或者連接中,如果連接中斷的話將導(dǎo)致業(yè)務(wù)處理失敗,造成資源的浪費(fèi),更嚴(yán)重者可能導(dǎo)致客戶端阻塞崩潰。

針對(duì)上述情況,常用的方式是客戶端定時(shí)向服務(wù)器發(fā)送心跳幀,以確認(rèn)客戶端是否與服務(wù)器保持連接,然而,定時(shí)發(fā)送心跳幀會(huì)出現(xiàn)一個(gè)問(wèn)題,例如客戶端每隔20秒向服務(wù)器發(fā)送一次心跳幀確保在線,如果在確認(rèn)連接后斷開(kāi)了連接,這將造成客戶端有一個(gè)20秒的錯(cuò)誤狀態(tài)(客戶端認(rèn)為在線,但實(shí)際已經(jīng)斷線),需要等待20秒后狀態(tài)才能正確。在這個(gè)階段用戶如果操作客戶端,很容易因?yàn)闋顟B(tài)不對(duì)造成阻塞或者崩潰的問(wèn)題。

如果將心跳幀的發(fā)送間隔縮短,例如由20秒發(fā)送修改為5秒發(fā)送,則頻繁的發(fā)送容易造成資源的競(jìng)爭(zhēng)和浪費(fèi),增加系統(tǒng)出錯(cuò)的概率。

如果將心跳幀的發(fā)送時(shí)間延長(zhǎng),則狀態(tài)的更新延時(shí)更加嚴(yán)重。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的,在于提供一種客戶端與服務(wù)器連接狀態(tài)的檢測(cè)方法,其可在減少資源浪費(fèi)與消除連接延時(shí)之間達(dá)成平衡。

為了達(dá)成上述目的,本發(fā)明的解決方案是:

一種客戶端與服務(wù)器連接狀態(tài)的檢測(cè)方法,判斷客戶端的狀態(tài)屬性是否處于空閑狀態(tài),若客戶端處于空閑狀態(tài),則定時(shí)發(fā)送心跳幀;若客戶端與服務(wù)器正在數(shù)據(jù)交互中,則即時(shí)發(fā)送心跳幀。

上述定時(shí)發(fā)送心跳幀的具體內(nèi)容是:客戶端定時(shí)向服務(wù)器發(fā)送心跳幀,并判斷是否在指定時(shí)間內(nèi)收到服務(wù)器反饋的消息回復(fù),若收到,則表示客戶端與服務(wù)器連接正常;若未收到,則客戶端等待設(shè)定時(shí)間后向服務(wù)器重新發(fā)送心跳幀。

上述客戶端等待設(shè)定時(shí)間后向服務(wù)器重新發(fā)送心跳幀,客戶端在指定時(shí)間內(nèi)收到服務(wù)器的消息回復(fù),則表示客戶端與服務(wù)器連接正常,等待下一次定時(shí)發(fā)送心跳幀;若客戶端在指定時(shí)間內(nèi)未收到服務(wù)器的消息回復(fù),則判定客戶端和服務(wù)器連接中斷,再定時(shí)自動(dòng)重連服務(wù)器。

上述客戶端與服務(wù)器正在數(shù)據(jù)交互中,則即時(shí)發(fā)送心跳幀的具體內(nèi)容是:若客戶端與服務(wù)器正在數(shù)據(jù)交互中,則客戶端實(shí)時(shí)向服務(wù)器發(fā)送心跳幀,并判斷是否在指定時(shí)間內(nèi)收到服務(wù)器反饋的消息回復(fù),若收到,則表示客戶端與服務(wù)器通信正常,然后開(kāi)始客戶端與服務(wù)器的數(shù)據(jù)交互;若未收到,則客戶端等待設(shè)定時(shí)間后向服務(wù)器重新發(fā)送心跳幀。

上述客戶端等待設(shè)定時(shí)間后向服務(wù)器重新發(fā)送心跳幀,客戶端在指定時(shí)間內(nèi)收到服務(wù)器的消息回復(fù),則表示客戶端與服務(wù)器連接正常,等待下一次定時(shí)發(fā)送心跳幀;若客戶端在指定時(shí)間內(nèi)未收到服務(wù)器的消息回復(fù),則判定客戶端和服務(wù)器連接中斷,再定時(shí)自動(dòng)重連服務(wù)器。

采用上述方案后,本發(fā)明在客戶端空閑階段定時(shí)發(fā)送心跳幀,而在需要交互時(shí)即時(shí)發(fā)送心跳幀,這樣,在空閑階段能夠節(jié)省資源,而需要交互時(shí)則能夠消除連接延時(shí),防止因?yàn)檠訒r(shí)而導(dǎo)致的服務(wù)器和客戶端獲取狀態(tài)不一致的情況。本發(fā)明消除了心跳幀定時(shí)發(fā)送導(dǎo)致的延時(shí)問(wèn)題,解決頻繁發(fā)送心跳幀導(dǎo)致資源的浪費(fèi)和競(jìng)爭(zhēng),在功能上能夠減少資源浪費(fèi)和消除延時(shí)平衡,不需要為了哪個(gè)功能犧牲另一個(gè),在整體結(jié)構(gòu)上簡(jiǎn)潔明了,不需要增加系統(tǒng)的復(fù)雜性。

附圖說(shuō)明

圖1是本發(fā)明的原理圖。

具體實(shí)施方式

以下將結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案及有益效果進(jìn)行詳細(xì)說(shuō)明。

如圖1所示,本發(fā)明提供一種客戶端與服務(wù)器連接狀態(tài)的檢測(cè)方法,包括如下步驟:

步驟1,首先判斷客戶端的狀態(tài)屬性是否處于空閑狀態(tài)(在客戶端接入服務(wù)器的時(shí)候默認(rèn)初始狀態(tài)屬性為:未與服務(wù)器通信,空閑;當(dāng)客戶端和服務(wù)器數(shù)據(jù)交互時(shí),客戶端狀態(tài)屬性為:與服務(wù)器通信中,繁忙),若客戶端處于空閑狀態(tài),則轉(zhuǎn)步驟2,若客戶端與服務(wù)器正在數(shù)據(jù)交互中,則轉(zhuǎn)步驟4;

步驟2,當(dāng)客戶端處于空閑狀態(tài),與服務(wù)器沒(méi)有業(yè)務(wù)上的交互需求時(shí),采用定時(shí)發(fā)送心跳幀的方式:即客戶端定時(shí)向服務(wù)器發(fā)送一條特定格式的消息(即心跳幀),然后進(jìn)入一個(gè)定時(shí)等待服務(wù)器回復(fù)操作;若客戶端與服務(wù)器連接正常,則服務(wù)器會(huì)在收到消息后,向客戶端反饋連接正常的回復(fù),當(dāng)客戶端在指定時(shí)間內(nèi)收到該回復(fù)時(shí),確認(rèn)兩者連接正常,并將客戶端的狀態(tài)屬性更新為:未與服務(wù)器通信,空閑,再返回步驟1;若客戶端與服務(wù)器連接異常,則客戶端在指定時(shí)間內(nèi)不會(huì)接收到服務(wù)器的消息回復(fù),則轉(zhuǎn)步驟3;

步驟3,客戶端發(fā)出心跳幀后,在指定時(shí)間內(nèi)未接收到服務(wù)器的消息回復(fù),則在到達(dá)指定時(shí)間時(shí),客戶端會(huì)在設(shè)定時(shí)間后(可設(shè)為1s)向服務(wù)器重新發(fā)送心跳幀,以確認(rèn)客戶端和服務(wù)器的通信情況(因?yàn)榭赡艿谝淮伟l(fā)送的心跳幀產(chǎn)生了丟包現(xiàn)象)。若重發(fā)心跳幀后,客戶端在指定時(shí)間內(nèi)成功收到服務(wù)器的應(yīng)答消息,則確認(rèn)客戶端與服務(wù)器連接正常,將客戶端的狀態(tài)屬性更新為:未與服務(wù)器通信,空閑,再返回步驟1;若重發(fā)心跳幀后,在指定時(shí)間內(nèi)仍未能收到服務(wù)器的應(yīng)答消息,則說(shuō)明客戶端和服務(wù)器通信出現(xiàn)異常,更新客戶端的屬性狀態(tài)為:與服務(wù)器連接中斷,同時(shí)客戶端會(huì)每隔設(shè)定時(shí)間(如5s)自動(dòng)重連服務(wù)器,若客戶端重新連接服務(wù)器成功,則重新進(jìn)入步驟1;

步驟4,當(dāng)客戶端需要與服務(wù)器進(jìn)行數(shù)據(jù)交互時(shí),客戶端首先向服務(wù)器發(fā)送心跳幀,詢問(wèn)與服務(wù)器的連接狀態(tài)。若客戶端在發(fā)送心跳幀后的指定時(shí)間內(nèi)收到服務(wù)器的應(yīng)答,證明客戶端與服務(wù)器通信正常,然后開(kāi)始客戶端與服務(wù)器的數(shù)據(jù)交互,同時(shí)更新客戶端的狀態(tài)屬性為:與服務(wù)器通信中,繁忙;若客戶端在發(fā)送心跳幀后,指定時(shí)間內(nèi)未收到服務(wù)器的應(yīng)答消息,則轉(zhuǎn)步驟5;

步驟5,客戶端發(fā)送心跳幀后,若在指定時(shí)間內(nèi)未收到服務(wù)器的應(yīng)答消息,客戶端會(huì)在設(shè)定時(shí)間后(如1s)重發(fā)一次心跳幀,確認(rèn)客戶端和服務(wù)器的通信情況(因?yàn)榭赡艿谝淮伟l(fā)送的心跳幀產(chǎn)生了丟包現(xiàn)象)。若重發(fā)心跳幀后,客戶端成功收到服務(wù)器的應(yīng)答消息,則證明客戶端與服務(wù)器通信正常,開(kāi)始數(shù)據(jù)交互,同時(shí)更新客戶端的狀態(tài)屬性為:與服務(wù)器通信中,繁忙;若重發(fā)心跳幀后仍未能在指定時(shí)間內(nèi)收到服務(wù)器的應(yīng)答消息,則說(shuō)明客戶端和服務(wù)器通信出現(xiàn)異常,更新客戶端的屬性狀態(tài)為:與服務(wù)器連接中斷,同時(shí)客戶端會(huì)每隔設(shè)定時(shí)間(如5s)自動(dòng)重連服務(wù)器;若客戶端重新連接服務(wù)器成功,則重新進(jìn)入步驟1。

以上實(shí)施例僅為說(shuō)明本發(fā)明的技術(shù)思想,不能以此限定本發(fā)明的保護(hù)范圍,凡是按照本發(fā)明提出的技術(shù)思想,在技術(shù)方案基礎(chǔ)上所做的任何改動(dòng),均落入本發(fā)明保護(hù)范圍之內(nèi)。



技術(shù)特征:

技術(shù)總結(jié)
本發(fā)明公開(kāi)一種客戶端與服務(wù)器連接狀態(tài)的檢測(cè)方法,判斷客戶端的狀態(tài)屬性是否處于空閑狀態(tài),若客戶端處于空閑狀態(tài),則客戶端定時(shí)向服務(wù)器發(fā)送心跳幀,并判斷是否在指定時(shí)間內(nèi)收到服務(wù)器反饋的消息回復(fù);若客戶端與服務(wù)器正在數(shù)據(jù)交互中,則客戶端實(shí)時(shí)向服務(wù)器發(fā)送心跳幀,并判斷是否在指定時(shí)間內(nèi)收到服務(wù)器反饋的消息回復(fù)。此種檢測(cè)方法可在減少資源浪費(fèi)與消除連接延時(shí)之間達(dá)成平衡。

技術(shù)研發(fā)人員:邱志斌;涂高元;黃東強(qiáng);郭永興;陸云燕;陳雅賢
受保護(hù)的技術(shù)使用者:廈門(mén)天銳科技股份有限公司
技術(shù)研發(fā)日:2017.08.21
技術(shù)公布日:2017.11.03
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1