專利名稱:一種探測通信對端在線狀態的方法、裝置及通信設備的制作方法
技術領域:
本發明涉及移動通信技術領域,尤其涉及一種探測通信對端在線狀態的方法、裝置及通信設備。
背景技術:
現有技術中,利用服務器保存移動終端通信雙方的在線或離線狀態。當通信雙方中任一端需要確定另一端的在線狀態時,需要登陸到服務器查詢對端的當前狀態。常用的實現方法為服務器不斷的探測移動終端,獲取通信雙方的在線狀態,并保存通信雙方的當前狀態。通信雙方每次需要通過與服務器交互才知道對方是否還在線,如 果甲方異常掉線,服務器不能及時獲取甲方已掉線的信息,這樣可能向正在查詢甲方在線狀態的乙方返回錯誤的結果。假設A和B為正在通信的兩個終端,二者的當前在線狀態均存儲在服務器上。服務器在tl時刻獲取終端B的狀態,并將剛得到的B的狀態信息進行更新保存,隨后在t2時刻接收到終端A發送的查詢B的在線狀態的請求,t2>tl,由于在t2時刻B的在線狀態可能已經發生了改變,而此時服務器上保存的仍是B在tl時刻的狀態,因此服務器發送給終端A的終端B的當前狀態是前一時刻獲得的狀態,會有一定的誤差。
發明內容
本發明實施例提供了一種探測通信對端在線狀態的方法、裝置及通信設備,用以解決現有技術中通過服務器查詢通信對端的在線狀態的方式可能導致查詢狀態出現誤差的問題。基于上述問題,本發明實施例提供的一種探測通信對端在線狀態的方法之一,包括第一終端每隔設定的第一發送周期向第二終端發送探測數據包;第一終端在以第一發送周期發送第N個探測數據包時開始進行計時,若在計時開始之后的第一定時時間內接收到響應包,則重新開始計時;以及若在重新計時之后的第一定時時間內接收到響應包,則再次重新開始計時,直至第一終端和第二終端會話結束;若在首次計時或每次重新計時之后的第一定時時間內,所述第一終端接收到了響應包,則確定所述第二終端在線;若在首次計時之后的第一定時時間內,所述第一終端未接收到響應包,則確定所述第二終端不在線;若在重新計時之后的第一定時時間內,所述第一終端未接收到響應包,則確定當前所述第二終端由在線變為不在線。本發明實施例提供了一種探測通信對端在線狀態的方法之二,包括第一終端接收第二終端發送的探測數據包,并針對每個接收到的探測數據包向所述第二終端返回響應包;
第一終端在返回第N個響應包時,開始計時,若在計時開始之后的第三定時時間內收到探測數據包,則再次返回響應包并重新開始計時;以及若在重新計時之后的第三定時時間內收到探測數據包,則再次返回響應包并再次重新開始計時,直至第一終端和第二終端會話結束;若在首次計時或者每次重新計時之后的第三定時時間內,所述第一終端接收到了探測數據包,則確定所述第二終端在線;若在首次計時之后的第三定時時間內,所述第一終端未接收到探測數據包,則確定所述第二終端不在線;若在重新計時之后的第三定時時間內,所述第一終端未接收到探測數據包,則確定當前所述第二終端由在線變為不在線。本發明實施例提供的一種探測通信對端在線狀態的裝置之一,包括
第一發送模塊,用于每隔設定的第一發送周期向通信對端發送探測數據包;第一計時模塊,用于在第一發送模塊以第一發送周期發送第N個探測數據包時開始進行計時,若在計時開始之后的第一定時時間內接收到響應包,則重新開始計時;以及若在重新計時之后的第一定時時間內接收到響應包,則再次重新開始計時,直至所述裝置和通信對端會話結束;第一判定模塊,用于若在首次計時或者每次重新計時之后的第一定時時間內,接收到了響應包,則確定所述通信對端在線;若在首次計時之后的第一定時時間內,未接收到響應包,則確定所述通信對端不在線;若在重新計時之后的第一定時時間內,未接收到響應包,則確定當前所述通信對端由在線變為不在線。本發明實施例提供的一種探測通信對端在線狀態的裝置之二,包括第一發送模塊,用于當接收到通信對端發送的探測數據包時,向通信對端返回響應包;第一計時模塊,用于所述第一發送模塊在向通信對端返回第N個響應包時,開始計時,若在計時開始之后的第三定時時間內接收到探測數據包,則所述第一發送模塊再次向通信對端返回響應包并重新開始計時;以及若在重新計時之后的第三定時時間內接收到探測數據包,則所述第一發送模塊再次向通信對端返回響應包并再次重新開始計時,直至所述裝置和通信對端會話結束;第一判定模塊,若在首次計時或者每次重新計時之后的第三定時時間內,接收到了探測數據包,則確定通信對端在線;若在首次計時之后的第三定時時間內,未接收到探測數據包,則確定所述通信對端不在線;若在重新計時之后的第三定時時間內,未接收到探測數據包,則確定當前所述通信對端由在線變為不在線。本發明實施例提供了一種通信設備,包括上述探測通信對端在線狀態的裝置之一和之二。本發明實施例的有益效果包括本發明實施例提供的一種探測通信對端在線狀態的方法、裝置及通信設備,使移動終端的通信雙方通過發送端向通信對端的接收端定期發送探測數據包,如果在一定時間內收到發送的任一探測數據包的響應包,則判斷對端在線,否則判斷對端不在線;通信雙方的接收端接收發送端定期發送的探測數據包,并向發送端發送響應包,如果在一定時間內接收到下一個所述發送端發送的任一探測數據包,則判斷發送端在線,否則判斷發送端不在線。這樣在通信雙方探測對端在線狀態時不需要訪問服務器,而通過通信雙方交互來獲得對端在線狀態,避免了與服務器的大量交互,解決了使用服務器存儲的通信雙方的在線狀態時,由于服務器更新不及時導致存儲的在線信息錯誤的問題。
圖I為本發明實施例提供的一種探測通信對端在線狀態的方法流程圖之一;圖2為本發明實施例提供的一種探測通信對端在線狀態的方法流程圖之二 ;圖3為本發明實施例提供的一種探測通信對端在線狀態的方法流程圖之三;圖4為本發明實施例提供的一種探測通信對端在線狀態的方法流程圖之四;
圖5為本發明實施例提供的一種探測通信對端在線狀態的方法發送方的發送示意圖;圖6為本發明實施例提供的一種探測通信對端在線狀態的方法接收方的接收示意圖;圖7為本發明實施例提供的一種探測通信對端在線狀態的裝置結構圖之一;圖8為本發明實施例提供的一種探測通信對端在線狀態的裝置結構圖之二 ;圖9為本發明實施例提供的一種探測通信對端在線狀態的裝置結構圖之三;圖10為本發明實施例提供的一種探測通信對端在線狀態的裝置結構圖之四。
具體實施例方式下面結合說明書附圖,對本發明實施例提供的一種探測通信對端在線狀態的方法、裝置及通信設備的具體實施方式
進行說明。本發明實施例提供的一種探測通信對端在線狀態的方法,終端在使用所述方法探測通信對端在線狀態時,既可以作為探測包的發送端探測接收端的在線狀態,也可以作為探測包的接收端探測發送端的在線狀態。為了便于說明,下面將本發明實施例提供的一種探測通信對端在線狀態的方法分別按照發送探測包的通信側以及接收探測包的通信側。本發明實施例提供的一種探測通信對端在線狀態的方法,在探測包的發送端即第一終端側,如圖I所示,具體包括以下步驟S101、第一終端每隔設定的第一發送周期向第二終端發送探測數據包;S102、第一終端在以第一發送周期發送第N個探測數據包的同時以第一定時時間進行計時;S103、第一終端判斷在首次計時開始之后的第一定時時間內是否接收到響應包;若在首次計時之后的設定的第一定時時間內未接收到響應包,則執行步驟S104 ;若在首次計時設定的第一定時時間內接收到響應包,則執行步驟S105 ;S104、第一終端確定所述第二終端不在線;S105、第一終端確定所述第二終端在線;并以第一定時時間重新計時;S106、第一終端判斷在步驟S105中重新計時開始之后的第一定時時間內是否接收到響應包;若在重新計時之后設定的第一定時時間內接收到響應包,則轉向執行步驟S105 ;若在重新計時之后設定的第一定時時間內未接收到響應包,則轉向執行步驟S107 ;
S107、第一終端確定當前第二終端由在線變為不在線。進一步地,上述步驟S105中第一終端重新計時,可以在接收到響應包的時刻開始重新計時,或者在第一定時時間結束的時刻開始重新計時。進一步地,如圖2所示,在上述步驟S104或者步驟S107執行之后,還可以包括S201、第一終端每隔設定的第二發送周期向第二終端發送探測數據包;該第二發送周期大于上述第一發送周期;S202、第一終端在以第二發送周期發送第N個探測數據包的同時以第二定時時間進行計時;該第二定時時間的長度大于上述第一定時時間;S203、第一終端判斷在以第二定時時間計時開始之后的第二定時時間內是否接收到響應包; S204、若在以第二定時時間計時之后的設定的第二定時時間內,第一終端接收到了響應包,則確定第二終端當前由不在線變為在線;S205、若在以第二定時時間計時之后的設定的第二定時時間內,第一終端未接收到響應包,則確定第二終端依然不在線,并且結束與第二終端的會話;本發明實施例提供的一種探測通信對端在線狀態的方法,在探測包的接收端即第一終端側,如圖3所示,具體包括以下步驟S301、第一終端接收第二終端發送的探測數據包;對每一個接收到的探測數據包向第二終端返回響應包;S302、第一終端在返回第N個響應包的同時,以第三定時時間進行計時;S303、第一終端判斷在首次計時開始之后的第三定時時間內是否接收到探測數據包,若在首次計時之后的設定的第三定時時間內未接收到探測數據包,則執行步驟S304;若在首次計時設定的第三定時時間內接收到探測數據包,則執行步驟S305 ;S304、第一終端確定第二終端不在線;S305、第一終端確定第二終端在線;向第二終端返回響應包,并以第三定時時間重新計時;S306、判斷在步驟S305中第一終端重新計時開始之后的第三定時時間內是否接收到響應包,若在重新計時之后設定的第三定時時間內接收到響應包,則執行步驟S305 ;若在重新計時之后設定的第三定時時間內未接收到響應包,則執行步驟S307 ;S307、第一終端確定當前第二終端由在線變為不在線。進一步地,上述步驟S305中第一終端重新計時,可以在發送響應包的時刻開始重新計時,或者第三定時時間結束的時刻開始重新計時。進一步地,如圖4所示,在上述步驟S304或者步驟S307執行之后,還包括S401、第一終端以第四定時時間進行計時;該第四定時時間的長度大于上述第三定時時間;S402、判斷在以第四定時時間計時開始之后的第四定時時間內是否接收到探測數據包;S403、若在以第四定時時間計時之后的設定的第四定時時間內,第一終端接收到了探測數據包,則返回響應包,并確定第二終端當前由不在線變為在線;S404、若在以第四定時時間計時之后的設定的第四計時時間內,第一終端未接收到探測數據包,則確定第二終端依然不在線,結束與第二終端的會話。較佳地,上述探測數據包和響應包均可由可擴展通信和表示協議(XMPP,theExtensible Messaging and Presence Protocol)的擴展生成。下面以互聯網協議電話(VOIP, Voice over Internet Protocol)的應用為例,說明具體生成方法。在VOIP的應用中,當通信雙方開始語音通話后,通過XMPP協議擴展部分生成通信雙方對對端在線狀態的探測數據包和響應包。具體做法為在擴展類型下定義子類型,子類型為探測數據包或者其響應包的標識。傳輸的內容可以是通信雙方的會話ID,此會話ID也可以加密傳輸。下面是一個具體的例子終端A與終端B進行voip語音通話時,終端A作為發送方,使用XMPP協議的擴展生成探測終端B是否在線的探測數據包;終端B作為接收方,使用XMPP協議的擴展生成探測終端A是否在線的響應包。假設A的id為“llllll@server. com”,B的id為“2222220 server, com”,定義擴展類型為“voip”,探測數據包的子類型為“ping”,響應包的子類型為“ping_ack”傳輸的content內容為加了密的終端A和終端B的會話SID。終端A作為發送端,向終端B發送的探測數據包內容例如可以為
〈message id = “abc- Γ to = ‘‘22222.2@3ει·νει·χοιτΓ from = “1111] I @servercom,’ >
<ext type = “voip” subtype = “ping’’>
<voip content = “a.bcewoeiri.mdafsad,’/>
</ext></messaiie>
o終端B作為接收端,接收到終端A的探測數據包后,向終端A發送的響應包的內容
例如可以為
〈message id = “abc-1” to = “111.111 @server.com” fiom = “222222(2;server.c.om” >
<ext type = ‘"voip” subtype = “ping—ack”>
<voip content = “abcewoeiiiiadafsad”/〉
</ext></inessage>本發明實施例提供的一種探測通信對端在線狀態的方法通過XMPP協議擴展生成探測通信對端是否在線的探測數據包或響應包,可以在通信雙方(如上述終端A和終端B)交互并發送網絡數據(比如音頻數據或者視頻數據等)的同時,互相探測對端的在線狀態。如果探測到通信對端在線,則通信雙方繼續交互,并繼續進行數據傳輸,如果探測到通信對端不在線或由在線變為不在線狀態,則停止數據的傳輸。這樣不通過查詢服務器而通過雙方交互查詢對端在線狀態,避免了與服務器的大量交互,并且可以及時準確的獲得對端的在線狀態,可以避免在通信雙方的某一方異常掉線時,另一方由于沒有及時獲得通知而占用著大量系統資源死等接收對方的消息和數據。
下面以一個具體的實施例進行說明。假設A和B為通信雙方,A為發送方,B為接收方。A用來探測B的在線狀態的探測數據包(ping包)和B用來探測A的在線狀態的響應包(ping_ack包)均由上述XMPP協議擴展生成。假設第一發送周期為5秒,第二發送周期為10秒,第一定時時間為20秒,第二定時時間為25秒,第三定時時間為15秒,第四定時時間為25秒。如圖5所示,A作為發送方通過向B發送探測 數據包來探測B的在線狀態,具體為A以第一發送周期5秒向B發送ping包,并在發送了第一個ping包以后以第一定時時間(20秒)開始計時,若在t0時刻(即第一定時時間20秒內)A接收到了 B回復的ping-ack包,則A確定B在線,并在t0時刻以第一定時時間重新開始計時,等待下一個ping-ack包;而若在重新開始計時后,下一個第一定時時間內,A接收到B回復的ping-ack包,則A確定B依然在線,并繼續重新開始計時,等待下一個ping-ack包,如此往復;若在重新開始計時后,下一個第一定時時間內,A沒有接收到B回復的ping-ack包,則A確定B由在線變為不在線,則執行下述第二定時方案;若在tl時刻(即超過第一定時時間20秒),A接收到B回復的ping-ack包,即在第一定時時間內A沒有收到B回復ping-ack包,則執行第二定時方案,即在沒有接收到ping-ack包的那個第一定時時間結束的時刻開始A以第二發送周期(10秒)向B發送ping包,并在以第二發送周期發送了第一個Ping包后,以第二定時時間重新開始計時,若在t2時刻即第二定時時間內A接收到了 B回復的ping-ack包則A確定B由不在線變為在線;若在第二定時時間內A沒有接收到B回復的ping-ack包,則A確定B依然不在線。如圖6所示,B作為接收方在接收到A發送的探測數據包后,通過向A回復響應包來探測A的在線狀態,具體為B在t0時刻接收到來自A的ping包,并在接收到此ping包后向A回復ping-ack包,同時以第三定時時間開始計時,若在tl時刻(即第三定時時間15秒內)B接收到了下一個ping包,則B向A回復ping-ack包,并確定A在線,在tl時刻以第三定時時間重新開始計時,等待下一個ping包;而若在重新開始計時后,下一個第三定時時間內,B接收到A發送的ping包,則確定A依然在線,并向A回復ping-ack包,同時繼續重新開始計時,等待下一個ping包,如此往復;若在重新開始計時后,下一個第三定時時間內,B沒有接收到A發送的ping包,則B確定A由在線變為不在線,則執行下述第四定時方案;若在t2時刻(即超過第三定時時間15秒),B接收到A發送的ping包,即在第三定時時間內B沒有收到A發送的ping包,則執行第四定時方案,即在沒有接收到ping包的那個第三定時時間結束的時刻開始B以第四定時時間重新開始計時,若在t3時刻即第四定時時間內,B接收到了 A發送的ping包,則B向A回復ping-ack包,并確定A由不在線變為在線;若在第四定時時間內B沒有接收到A發送的ping包,則B確定A依然不在線。基于同一發明構思,本發明實施例還提供了一種探測通信對端在線狀態的裝置及通信設備,由于這些裝置和通信設備所解決問題的原理與前述探測通信對端在線狀態方法相似,因此該裝置和設備的實施可以參見前述方法的實施,重復之處不再贅述。如圖7所示,為本發明實施例提供的一種探測通信對端在線狀態的裝置之一,包括
第一發送模塊701,用于每隔設定的第一發送周期向通信對端發送探測數據包;第一計時模塊702,用于在第一發送模塊701以第一發送周期發送第N個探測數據包的同時以第一定時時間進行計時,若在計時開始之后的第一定時時間內接收到響應包,則以第一定時時間重新計時;以及若在重新計時之后設定的第一定時時間內接收到響應包,則再次以第一定時時間重新計時,直至所述裝置和通信對端會話結束;第一判定模塊703,用于若在首次計時或者每次重新計時之后的設定的第一定時時間內,接收到了響應包,則確定所述通信對端在線;若在首次計時之后的設定的第一定時時間段內,未接收到響應包,則確定所述通信對端不在線;若在重新計時之后的設定的第一定時時間內,未接收到響應包,則確定當前所述通信對端由在線變為不在線。進一步地,第一計時模塊702中,所述重新計時可以以所述裝置接收到響應包的時刻開始重新計時,或者以第一定時時間段結束的時刻開始重新計時。進一步地,如圖8所示,本發明實施例提供的一種探測通信對端在線狀態的裝置 之一,還包括第二發送模塊801,用于在所述第一判定模塊703確定所述通信對端不在線或者由在線變為不在線之后,每隔設定的第二發送周期向所述通信對端發送探測數據包;所述第二發送周期大于所述第一發送周期;第二計時模塊802,用于在所述第二發送模塊801以第二發送周期發送第N個探測數據包的同時以第二定時時間進行計時;所述第二定時時間的長度大于所述第一定時時間;第二判定模塊803,用于若在以第二定時時間計時之后的設定的第二定時時間內,接收到了響應包,則確定所述通信對端當前由不在線變為在線;若在以第二定時時間計時之后的設定的第二定時時間內,未接收到響應包,則確定所述通信對端依然不在線,結束與所述通信對端的會話。如圖9所示,為本發明實施例提供的一種探測通信對端在線狀態的裝置之二,包括第一發送模塊901,用于當接收到通信對端發送的探測數據包時,向通信對端返回響應包;第一計時模塊902,用于所述第一發送模塊901在向通信對端返回第N個響應包的同時,以第三定時時間進行計時,若在計時開始之后的第三定時時間內接收到探測數據包,則所述第一發送模塊901再次向通信對端返回響應包并以第三定時時間重新計時;以及若在重新計時之后設定的第三定時時間內接收到探測數據包,則所述第一發送模塊901再次向通信對端返回響應包并以第三定時時間重新計時,直至所述裝置和通信對端會話結束;第一判定模塊903,若在首次計時或者每次重新計時之后的設定的第三定時時間內,接收到了探測數據包,則確定通信對端在線;若在首次計時之后的設定的第三定時時間內,未接收到探測數據包,則確定所述通信對端不在線;若在重新計時之后的設定的第三定時時間內,未接收到探測數據包,則確定當前所述通信對端由在線變為不在線。進一步地,第一計時模塊902中,所述重新計時可以以所述第一發送模塊701向通信對端返回響應包的時刻開始重新計時,或者以第三定時時間段結束的時刻開始重新計時。
進一步地,如圖10所示,本發明實施例提供的一種探測通信對端在線狀態的裝置之二,還包括第二計時模塊1001,用于當所述第一判定模塊903確定所述通信對端不在線或者由在線變為不在線之后,以第四定時時間進行計時;所述第四定時時間的長度大于所述第三定時時間;第二判定模塊1002,用于若在以第四定時時間計時之后的設定的第四定時時間內,接收到了探測數據包,則返回響應包,并確定所述通信對端當前由不在線變為在線;若在以第四定時時間計時之后的設定的第四定時時間內,未接收到探測數據包,則確定所述通信對端依然不在線,結束與所述通信對端的會話。本發明實施例提供了一種通信設備,包括本發明實施例提供的上述一種探測通信對端在線狀態的裝置之一和一種探測通信對端在線狀態的裝置之二。 通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明實施例可以通過硬件實現,也可以借助軟件加必要的通用硬件平臺的方式來實現。基于這樣的理解,本發明實施例的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是⑶-R0M,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。本領域技術人員可以理解附圖只是一個優選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發明所必須的。本領域技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。本發明實施例提供的一種探測通信對端在線狀態的方法、裝置及通信設備,使移動終端的通信雙方通過發送端向通信對端的接收端定期發送探測數據包,如果在一定時間內收到發送的任一探測數據包的響應包,則判斷對端在線,否則判斷對端不在線;通信雙方的接收端接收發送端定期發送的探測數據包,并向發送端發送響應包,如果在一定時間內接收到下一個所述發送端發送的任一探測數據包,則判斷發送端在線,否則判斷發送端不在線。這樣在通信雙方探測對端在線狀態時不需要訪問服務器,而通過通信雙方交互來獲得對端在線狀態,避免了與服務器的大量交互,解決了使用服務器存儲的通信雙方的在線狀態時,由于服務器更新不及時導致存儲的在線信息錯誤的問題。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種探測通信對端在線狀態的方法,其特征在于,包括 第一終端每隔設定的第一發送周期向第二終端發送探測數據包; 第一終端在以第一發送周期發送第N個探測數據包時開始進行計時,若在計時開始之后的第一定時時間內接收到響應包,則重新開始計時;以及若在重新計時之后的第一定時時間內接收到響應包,則再次重新開始計時,直至第一終端和第二終端會話結束; 若在首次計時或每次重新計時之后的第一定時時間內,所述第一終端接收到了響應包,則確定所述第二終端在線; 若在首次計時之后的第一定時時間內,所述第一終端未接收到響應包,則確定所述第二終端不在線; 若在重新計時之后的第一定時時間內,所述第一終端未接收到響應包,則確定當前所述第二終端由在線變為不在線。
2.如權利要求I所述的方法,其特征在于,所述重新開始計時,包括 以接收到響應包的時刻重新開始計時,或者 以第一定時時間結束的時刻重新開始計時。
3.如權利要求I所述的方法,其特征在于,在確定所述第二終端不在線或者由在線變為不在線之后,還包括 第一終端每隔設定的第二發送周期向所述第二終端發送探測數據包; 第一終端在以第二發送周期發送第N個探測數據包時開始進行計時; 若在開始計時之后的第二定時時間內,所述第一終端接收到了響應包,則確定所述第二終端當前由不在線變為在線; 若在開始計時之后的第二定時時間內,所述第一終端未接收到響應包,則確定所述第二終端依然不在線,結束與所述第二終端的會話; 所述第二發送周期大于所述第一發送周期,且所述第二定時時間的長度大于所述第一定時時間的長度。
4.如權利要求1-3任一項所述的方法,其特征在于,所述探測數據包由可擴展通信和表示協議XMPP的擴展生成。
5.一種探測通信對端在線狀態的方法,其特征在于,包括 第一終端接收第二終端發送的探測數據包,并針對每個接收到的探測數據包向所述第二終端返回響應包; 第一終端在返回第N個響應包時,開始計時,若在計時開始之后的第三定時時間內收到探測數據包,則再次返回響應包并重新開始計時;以及若在重新計時之后的第三定時時間內收到探測數據包,則再次返回響應包并再次重新開始計時,直至第一終端和第二終端會話結束; 若在首次計時或者每次重新計時之后的第三定時時間內,所述第一終端接收到了探測數據包,則確定所述第二終端在線; 若在首次計時之后的第三定時時間內,所述第一終端未接收到探測數據包,則確定所述第二終端不在線; 若在重新計時之后的第三定時時間內,所述第一終端未接收到探測數據包,則確定當前所述第二終端由在線變為不在線。
6.如權利要求5所述的方法,其特征在于,所述重新開始計時,包括 以發送響應包的時刻重新開始計時,或者 以第三定時時間結束的時刻重新開始計時。
7.如權利要求5所述方法,其特征在于,當確定所述第二終端的狀態為不在線或者由在線變為不在線之后,還包括 第一終端重新開始計時; 若在重新開始計時之后的第四定時時間內,所述第一終端接收到了探測數據包,則返回響應包,并確定所述第二終端當前由不在線變為在線; 若在重新開始計時之后的第四定時時間內,所述第一終端未接收到探測數據包,則確定所述第二終端依然不在線,結束與所述第二終端的會話; 所述第四定時時間的長度大于所述第三定時時間的長度。
8.如權利要求5-7任一項所述的方法,其特征在于,所述響應包由可擴展通信和表示協議XMPP的擴展生成。
9.一種探測通信對端在線狀態的裝置,其特征在于,包括 第一發送模塊,用于每隔設定的第一發送周期向通信對端發送探測數據包; 第一計時模塊,用于在第一發送模塊以第一發送周期發送第N個探測數據包時開始進行計時,若在計時開始之后的第一定時時間內接收到響應包,則重新開始計時;以及若在重新計時之后的第一定時時間內接收到響應包,則再次重新開始計時,直至所述裝置和通信對端會話結束; 第一判定模塊,用于若在首次計時或者每次重新計時之后的第一定時時間內,接收到了響應包,則確定所述通信對端在線;若在首次計時之后的第一定時時間內,未接收到響應包,則確定所述通信對端不在線;若在重新計時之后的第一定時時間內,未接收到響應包,則確定當前所述通信對端由在線變為不在線。
10.如權利要求9所述的裝置,其特征在于,所述第一計時模塊,具體用于以所述裝置接收到響應包的時刻重新開始計時,或者以第一定時時間段結束的時刻重新開始計時。
11.如權利要求9所述裝置,其特征在于,還包括 第二發送模塊,用于在所述第一判定模塊確定所述通信對端不在線或者由在線變為不在線之后,每隔設定的第二發送周期向所述通信對端發送探測數據包;所述第二發送周期大于所述第一發送周期; 第二計時模塊,用于在所述第二發送模塊以第二發送周期發送第N個探測數據包時開始進行計時; 第二判定模塊,用于若在開始計時之后的第二定時時間內,接收到了響應包,則確定所述通信對端當前由不在線變為在線;若在開始計時之后的第二定時時間內,未接收到響應包,則確定所述通信對端依然不在線,結束與所述通信對端的會話;所述第二定時時間的長度大于所述第一定時時間的長度。
12.—種探測通信對端在線狀態的裝置,其特征在于,包括 第一發送模塊,用于當接收到通信對端發送的探測數據包時,向通信對端返回響應包; 第一計時模塊,用于所述第一發送模塊在向通信對端返回第N個響應包時,開始計時,若在計時開始之后的第三定時時間內接收到探測數據包,則所述第一發送模塊再次向通信對端返回響應包并重新開始計時;以及若在重新計時之后的第三定時時間內接收到探測數據包,則所述第一發送模塊再次向通信對端返回響應包并再次重新開始計時,直至所述裝置和通信對端會話結束; 第一判定模塊,若在首次計時或者每次重新計時之后的第三定時時間內,接收到了探測數據包,則確定通信對端在線;若在首次計時之后的第三定時時間內,未接收到探測數據包,則確定所述通信對端不在線;若在重新計時之后的第三定時時間內,未接收到探測數據包,則確定當前所述通信對端由在線變為不在線。
13.如權利要求12所述裝置,其特征在于,所述第一計時模塊,具體用于以所述第一發送模塊向通信對端返回響應包的時刻重新開始計時,或者以第三定時時間段結束的時刻重新開始計時。
14.如權利要求12所述裝置,其特征在于,還包括 第二計時模塊,用于當所述第一判定模塊確定所述通信對端不在線或者由在線變為不在線之后,重新開始計時; 第二判定模塊,用于若在重新開始計時之后的第四定時時間內,接收到了探測數據包,則返回響應包,并確定所述通信對端當前由不在線變為在線;若在重新開始計時之后的第四定時時間內,未接收到探測數據包,則確定所述通信對端依然不在線,結束與所述通信對端的會話;所述第四定時時間的長度大于所述第三定時時間的長度。
15.一種通信設備,其特征在于,包括如權利要求9-11任一項所述的探測通信對端在線狀態的裝置和如權利要求12-14任一項所述的探測通信對端在線狀態的裝置。
全文摘要
本發明實施例提供了一種探測通信對端在線狀態的方法、裝置及通信設備,第一終端每隔設定的第一發送周期向第二終端發送探測數據包,并以第一定時時間計時,若第一定時時間內接收到響應包,則以第一定時時間重新計時;直至第一終端和第二終端會話結束;若在首次計時或每次重新計時之后的第一定時時間內,接收到了響應包,則確定第二終端在線;若在首次計時之后的設定的第一定時時間內,未接收到響應包,則確定第二終端不在線;若在重新計時之后的設定的第一定時時間內,未接收到響應包,則確定第二終端由在線變為不在線。本發明涉及移動通信技術領域,解決現有技術中通過服務器查詢通信對端的在線狀態的方式可能導致查詢狀態出現誤差的問題。
文檔編號H04W24/00GK102781017SQ20121022930
公開日2012年11月14日 申請日期2012年7月3日 優先權日2012年7月3日
發明者林形省, 樊家麟, 沈洋 申請人:北京小米科技有限責任公司