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

服務(wù)端、用戶端消息傳輸處理方法、消息傳輸方法及系統(tǒng)的制作方法

文檔序號(hào):7781528閱讀:185來(lái)源:國(guó)知局
服務(wù)端、用戶端消息傳輸處理方法、消息傳輸方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種服務(wù)端、用戶端消息傳輸處理方法、消息傳輸方法及系統(tǒng)。通過(guò)在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間后發(fā)送給用戶端,使用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
【專利說(shuō)明】服務(wù)端、用戶端消息傳輸處理方法、消息傳輸方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)消息傳輸?shù)摹炯夹g(shù)領(lǐng)域】,特別是涉及一種服務(wù)端的消息傳輸處理方法及其系統(tǒng),一種用戶端的消息傳輸處理方法及其系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來(lái)越多的應(yīng)用支持多人會(huì)話,但網(wǎng)絡(luò)有著明顯的不穩(wěn)定性,從而導(dǎo)致多人會(huì)話的消息到達(dá)率會(huì)比較低,也就是多人會(huì)話可能會(huì)丟失部分消息。
[0003]一般要解決消息丟失的問(wèn)題,都通過(guò)接收端回復(fù)確認(rèn)消息來(lái)保證,ACK(Acknowledgement,確認(rèn)消息)是在數(shù)據(jù)通信中,接收點(diǎn)發(fā)給發(fā)送端的一種傳輸類消息,表示發(fā)送端發(fā)來(lái)的數(shù)據(jù)已確認(rèn)接受無(wú)誤。
[0004]現(xiàn)有的多人會(huì)話通常以網(wǎng)絡(luò)群組的方式進(jìn)行。在即時(shí)通信系統(tǒng)中,將有相同愛(ài)好或者特征的人群集合到一起可以聊天和交流的平臺(tái)就是群組。
[0005]如圖1所示:用戶I發(fā)送一條群組消息到群組邏輯進(jìn)程(箭頭1、2),群組邏輯進(jìn)程廣播給群組中的其它用戶(箭頭3、4、5、6),其它用戶收到消息后回復(fù)ACK消息到群組邏輯,到此整個(gè)消息發(fā)送流程才完結(jié)。這種消息傳輸方法有二個(gè)主要缺點(diǎn):
[0006]1.所有接收到消息的用戶端都要回復(fù)ACK,增加群組邏輯進(jìn)程的負(fù)擔(dān),當(dāng)群組用戶成百上千的時(shí)候會(huì)嚴(yán)重影響群組邏輯服務(wù)端的進(jìn)程性能;
[0007]2.用戶端回復(fù)的ACK消息增加用戶端的流量。

【發(fā)明內(nèi)容】

[0008]針對(duì)現(xiàn)有消息傳輸方法中接收用戶回復(fù)確認(rèn)消息影響服務(wù)端性能,增加用戶端流量的問(wèn)題。本發(fā)明提出一種服務(wù)端的消息傳輸處理方法及其系統(tǒng),能夠準(zhǔn)確檢測(cè)傳輸?shù)南⑹欠駚G失,且無(wú)需接收消息的用戶端發(fā)送確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,不會(huì)增加用戶端的流量。
[0009]一種服務(wù)端的消息傳輸處理方法,包括以下步驟:
[0010]在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;
[0011]如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0012]—種服務(wù)端的消息傳輸處理系統(tǒng),包括:
[0013]消息發(fā)送模塊,用于在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;
[0014]消息重傳模塊,用于如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。[0015]本發(fā)明的服務(wù)端的消息傳輸處理方法及其系統(tǒng)中,通過(guò)在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間后發(fā)送給用戶端,使用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0016]針對(duì)上述問(wèn)題,本發(fā)明還提出一種用戶端的消息傳輸處理方法及其系統(tǒng),能夠準(zhǔn)確檢測(cè)傳輸?shù)南⑹欠駚G失,且無(wú)需接收消息的用戶端發(fā)送確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,不會(huì)增加用戶端的流量。
[0017]一種用戶端的消息傳輸處理方法,包括以下步驟:
[0018]接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間;
[0019]根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0020]一種用戶端的消息傳輸處理系統(tǒng),包括:
[0021]消息接收模塊,用于接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間;
[0022]重傳請(qǐng)求模塊,用于根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0023]本發(fā)明的用戶端的消息傳輸處理方法及其系統(tǒng)中,接收服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0024]針對(duì)上述問(wèn)題,本發(fā)明還提出一種消息傳輸方法及其系統(tǒng),能夠準(zhǔn)確檢測(cè)傳輸?shù)南⑹欠駚G失,且無(wú)需接收消息的用戶端發(fā)送確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,不會(huì)增加用戶端的流量。
[0025]一種消息傳輸方法,包括以下步驟:
[0026]服務(wù)端在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;[0027]用戶端接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間;
[0028]服務(wù)端接收到所述消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0029]一種消息傳輸系統(tǒng),包括服務(wù)端和用戶端:
[0030]所述服務(wù)端用于在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;并在接收到用戶端發(fā)送的消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息;
[0031]所述用戶端用于接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間。
[0032]本發(fā)明的消息傳輸方法及其系統(tǒng)中,服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。服務(wù)端根據(jù)所述消息重傳指令重傳相應(yīng)的消息,消除消息丟失的影響。并且用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
【專利附圖】

【附圖說(shuō)明】
[0033]圖1是一種現(xiàn)有的數(shù)據(jù)傳輸方法的示意圖;
[0034]圖2是本發(fā)明服務(wù)端的消息傳輸處理方法的流程示意圖;
[0035]圖3是本發(fā)明用戶端的消息傳輸處理方法的流程示意圖;
[0036]圖4是本發(fā)明消息傳輸方法的流程示意圖;
[0037]圖5是本發(fā)明服務(wù)端的消息傳輸處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0038]圖6是本發(fā)明用戶端的消息傳輸處理系統(tǒng)的結(jié)構(gòu)示意圖;
[0039]圖7是本發(fā)明消息傳輸系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0040]請(qǐng)參閱圖2,圖2是本發(fā)明服務(wù)端的消息傳輸處理方法的流程示意圖。
[0041]所述服務(wù)端的消息傳輸處理方法,包括以下步驟:
[0042]S202,在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;
[0043]S204,如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0044]本發(fā)明的服務(wù)端的消息傳輸處理方法中,通過(guò)在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間后發(fā)送給用戶端,使用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0045]其中,為獲得所述服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,可以在所述服務(wù)端發(fā)送每個(gè)消息時(shí)對(duì)所述消息的發(fā)送時(shí)間進(jìn)行保存。
[0046]在一個(gè)優(yōu)選實(shí)施方式中,可對(duì)各個(gè)接收數(shù)據(jù)的用戶端都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端對(duì)所述用戶端發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。貝U,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端的上一次消息發(fā)送時(shí)間。
[0047]對(duì)于群組通信的情況下,步驟S202可以具體為:
[0048]接收用戶端發(fā)送的群組消息至服務(wù)端,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端。
[0049]在用戶與用戶之間的通信過(guò)程中,發(fā)送用戶端將消息發(fā)送到服務(wù)端,服務(wù)端再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端。因此,在這種情形下,所述服務(wù)端發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0050]因?yàn)榉?wù)端對(duì)用戶端第一次發(fā)送消息時(shí),沒(méi)有所謂的上一次發(fā)送消息的時(shí)間,因此服務(wù)端對(duì)用戶端第一次發(fā)送的消息設(shè)置lasttime=0。
[0051]步驟S204中,如果接收到所述用戶端發(fā)送的消息重傳指令,則根據(jù)所述消息重傳指令重傳相應(yīng)的消息。
[0052]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0053]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0054]請(qǐng)參閱圖3,圖3是本發(fā)明用戶端的消息傳輸處理方法的流程示意圖。
[0055]所述用戶端的消息傳輸處理方法,包括以下步驟:[0056]S302,接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間;
[0057]S304,根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0058]本發(fā)明的用戶端的消息傳輸處理方法中,接收服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0059]其中,所述服務(wù)端發(fā)送的消息中包括的服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,由服務(wù)端設(shè)定。服務(wù)端可以對(duì)各個(gè)接收數(shù)據(jù)的用戶端都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端對(duì)所述用戶端發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。則,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端的上一次消息發(fā)送時(shí)間
[0060]在用戶與用戶之間的通信情形下,發(fā)送用戶端將消息發(fā)送到服務(wù)端,服務(wù)端再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端。因此,在這種情形下,所述服務(wù)端發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0061]步驟S304中,根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較。
[0062]所述用戶端每次接受到服務(wù)端發(fā)送的消息時(shí),記錄所述消息的接收時(shí)間,可將各個(gè)消息的接收時(shí)間記錄成接收時(shí)間隊(duì)列,所述接收時(shí)間隊(duì)列至少包含有上一次消息接收時(shí)間。從而在每一次接收到消息的時(shí)候查找到上一次消息接收的時(shí)間。
[0063]然后,將從所述服務(wù)端發(fā)送的本次消息中獲取到的所述服務(wù)端上一次消息發(fā)送時(shí)間,與查找到的用戶端上一次消息接收時(shí)間比較。
[0064]如果兩個(gè)時(shí)間相同,則說(shuō)明證明在用戶端兩次接收消息之間沒(méi)有其他消息丟失,因此可直接保存所述消息;如果兩個(gè)時(shí)間不相同,則說(shuō)明在用戶端兩次接收消息之間所述服務(wù)端還發(fā)送了其他的消息,而用戶端沒(méi)有收到,即這兩個(gè)時(shí)間之間的消息發(fā)生丟失,因此向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0065]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0066]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0067]針對(duì)服務(wù)端對(duì)用戶端第一次發(fā)送消息的情況,進(jìn)一步執(zhí)行以下處理:
[0068]判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為0,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
[0069]請(qǐng)參閱圖4,圖4是本發(fā)明消息傳輸方法的流程示意圖。
[0070]所述消息傳輸方法,包括以下步驟:
[0071]S402,服務(wù)端在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;
[0072]S404,用戶端接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間;
[0073]S406,服務(wù)端接收到所述消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0074]本發(fā)明的消息傳輸方法中,服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。服務(wù)端根據(jù)所述消息重傳指令重傳相應(yīng)的消息,消除消息丟失的影響。并且用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0075]其中,所述服務(wù)端為獲得所述服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,可以在所述服務(wù)端發(fā)送每個(gè)消息時(shí)對(duì)所述消息的發(fā)送時(shí)間進(jìn)行保存。
[0076]在一個(gè)優(yōu)選實(shí)施方式中,所述服務(wù)端可對(duì)各個(gè)接收數(shù)據(jù)的用戶端都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端對(duì)所述用戶端發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。貝IJ,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端的上一次消息發(fā)送時(shí)間。
[0077]對(duì)于群組通信的情況下,步驟S402可以具體為:
[0078]接收用戶端發(fā)送的群組消息至服務(wù)端,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端。
[0079]在用戶與用戶之間的通信過(guò)程中,發(fā)送用戶端將消息發(fā)送到服務(wù)端,服務(wù)端再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端。因此,在這種情形下,所述服務(wù)端發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0080]因?yàn)榉?wù)端對(duì)用戶端第一次發(fā)送消息時(shí),沒(méi)有所謂的上一次發(fā)送消息的時(shí)間,因此服務(wù)端對(duì)用戶端第一次發(fā)送的消息設(shè)置lasttime=0。
[0081]步驟S404中,用戶端根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將從所述服務(wù)端發(fā)送的本次消息中獲取到的所述服務(wù)端上一次消息發(fā)送時(shí)間,與查找到的用戶端上一次消息接收時(shí)間比較。
[0082]如果兩個(gè)時(shí)間相同,則說(shuō)明證明在用戶端兩次接收消息之間沒(méi)有其他消息丟失,因此可直接保存所述消息;如果兩個(gè)時(shí)間不相同,則說(shuō)明在用戶端兩次接收消息之間所述服務(wù)端還發(fā)送了其他的消息,而用戶端沒(méi)有收到,即這兩個(gè)時(shí)間之間的消息發(fā)生丟失,因此向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0083]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0084]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0085]針對(duì)服務(wù)端對(duì)用戶端第一次發(fā)送消息的情況,所述用戶端可進(jìn)一步執(zhí)行以下處理:
[0086]判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為0,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
[0087]步驟S406中,服務(wù)端接收到所述用戶端發(fā)送的消息重傳指令,根據(jù)所述消息重傳指令重傳相應(yīng)的消息。
[0088]請(qǐng)參閱圖5,圖5是本發(fā)明服務(wù)端的消息傳輸處理系統(tǒng)的結(jié)構(gòu)示意圖。
[0089]所述服務(wù)端的消息傳輸處理系統(tǒng),包括:
[0090]消息發(fā)送模塊51,用于在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;
[0091]消息重傳模塊52,用于如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0092]本發(fā)明的服務(wù)端的消息傳輸處理系統(tǒng)中,通過(guò)在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間后發(fā)送給用戶端,使用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0093]其中,為獲得所述服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,所述消息發(fā)送模塊51可以在所述服務(wù)端發(fā)送每個(gè)消息時(shí)對(duì)所述消息的發(fā)送時(shí)間進(jìn)行保存。
[0094]在一個(gè)優(yōu)選實(shí)施方式中,所述消息發(fā)送模塊51可對(duì)各個(gè)接收數(shù)據(jù)的用戶端都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端對(duì)所述用戶端發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。則,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端的上一次消息發(fā)送時(shí)間。
[0095]對(duì)于群組通信的情況下,所述消息發(fā)送模塊51接收用戶端發(fā)送的群組消息至服務(wù)端,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端。
[0096]在用戶與用戶之間的通信過(guò)程中,發(fā)送用戶端將消息發(fā)送到服務(wù)端,服務(wù)端再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端。因此,在這種情形下,所述服務(wù)端發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0097]因?yàn)榉?wù)端對(duì)用戶端第一次發(fā)送消息時(shí),沒(méi)有所謂的上一次發(fā)送消息的時(shí)間,因此服務(wù)端對(duì)用戶端第一次發(fā)送的消息設(shè)置lasttime=0。
[0098]所述消息重傳模塊52如果接收到所述用戶端發(fā)送的消息重傳指令,則根據(jù)所述消息重傳指令重傳相應(yīng)的消息。
[0099]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端的所述消息重傳模塊52可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0100]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端的所述消息重傳模塊52可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0101]請(qǐng)參閱圖6,圖6是本發(fā)明用戶端的消息傳輸處理系統(tǒng)的結(jié)構(gòu)示意圖。
[0102]所述用戶端的消息傳輸處理方法,包括以下步驟:
[0103]消息接收模塊61,用于接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間;
[0104]重傳請(qǐng)求模塊62,用于根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0105]本發(fā)明的用戶端的消息傳輸處理系統(tǒng)中,接收服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0106]其中,所述服務(wù)端發(fā)送的消息中包括的服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,由服務(wù)端設(shè)定。服務(wù)端可以對(duì)各個(gè)接收數(shù)據(jù)的用戶端都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端對(duì)所述用戶端發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。則,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端的上一次消息發(fā)送時(shí)間
[0107]在用戶與用戶之間的通信情形下,發(fā)送用戶端將消息發(fā)送到服務(wù)端,服務(wù)端再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端。因此,在這種情形下,所述服務(wù)端發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0108]所述重傳請(qǐng)求模塊62首先根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較。
[0109]所述用戶端每次接受到服務(wù)端發(fā)送的消息時(shí),記錄所述消息的接收時(shí)間,可將各個(gè)消息的接收時(shí)間記錄成接收時(shí)間隊(duì)列,所述接收時(shí)間隊(duì)列至少包含有上一次消息接收時(shí)間。從而在每一次接收到消息的時(shí)候查找到上一次消息接收的時(shí)間。
[0110]然后,將從所述服務(wù)端發(fā)送的本次消息中獲取到的所述服務(wù)端上一次消息發(fā)送時(shí)間,與查找到的用戶端上一次消息接收時(shí)間比較。
[0111]如果兩個(gè)時(shí)間相同,則說(shuō)明證明在用戶端兩次接收消息之間沒(méi)有其他消息丟失,因此可直接保存所述消息;如果兩個(gè)時(shí)間不相同,則說(shuō)明在用戶端兩次接收消息之間所述服務(wù)端還發(fā)送了其他的消息,而用戶端沒(méi)有收到,即這兩個(gè)時(shí)間之間的消息發(fā)生丟失,因此所述重傳請(qǐng)求模塊62向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0112]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0113]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0114]針對(duì)服務(wù)端對(duì)用戶端第一次發(fā)送消息的情況,進(jìn)一步執(zhí)行以下處理:
[0115]判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為0,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
[0116]請(qǐng)參閱圖7,圖7是本發(fā)明消息傳輸方法的流程示意圖。
[0117]所述消息傳輸系統(tǒng),包括:服務(wù)端71和用戶端72:
[0118]所述服務(wù)端71用于在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;并在接收到用戶端發(fā)送的消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息;
[0119]所述用戶端72用于接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間。
[0120]本發(fā)明的消息傳輸系統(tǒng)中,服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間。因此,用戶端可以根據(jù)所述消息中的服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間是否對(duì)比相同,從而確定服務(wù)端發(fā)送的消息有無(wú)丟失,如果丟失可通過(guò)對(duì)所述服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送用戶端上一次消息接收時(shí)間到服務(wù)端本次消息發(fā)送時(shí)間之間丟失的消息。服務(wù)端根據(jù)所述消息重傳指令重傳相應(yīng)的消息,消除消息丟失的影響。并且用戶端無(wú)需再每次接受消息后都對(duì)服務(wù)端發(fā)送去確認(rèn)消息,減少發(fā)送確認(rèn)消息對(duì)服務(wù)端造成的性能影響,并且不會(huì)增加用戶端的流量。尤其在多人會(huì)話、群組會(huì)話的通信方式中能夠大大減少服務(wù)端的負(fù)擔(dān)。
[0121]其中,服務(wù)端71為獲得所述服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,可以在所述服務(wù)端71發(fā)送每個(gè)消息時(shí)對(duì)所述消息的發(fā)送時(shí)間進(jìn)行保存。
[0122]在一個(gè)優(yōu)選實(shí)施方式中,所述服務(wù)端71可對(duì)各個(gè)接收數(shù)據(jù)的用戶端72都創(chuàng)建一個(gè)發(fā)送消息隊(duì)列,所述發(fā)送消息隊(duì)列中保存預(yù)定時(shí)間內(nèi)服務(wù)端71對(duì)所述用戶端72發(fā)送的消息,以及各個(gè)消息的發(fā)送時(shí)間。貝U,根據(jù)所述發(fā)送消息隊(duì)列,可以查找到對(duì)相應(yīng)的用戶端72的上一次消息發(fā)送時(shí)間。
[0123]對(duì)于群組通信的情況下,所述服務(wù)端71接收用戶端72發(fā)送的群組消息,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端72。
[0124]在用戶與用戶之間的通信過(guò)程中,發(fā)送用戶端72將消息發(fā)送到服務(wù)端71,所述服務(wù)端71再將所述消息轉(zhuǎn)發(fā)到相應(yīng)的接收用戶端72。因此,在這種情形下,所述服務(wù)端71發(fā)送消息的時(shí)間可以等于所述發(fā)送用戶端72將消息發(fā)送至服務(wù)端的時(shí)間,記為sendtime,可以64位毫秒數(shù)表示。而所述服務(wù)端上一次發(fā)送消息的時(shí)間也等于所述發(fā)送用戶端上一次將消息發(fā)送至服務(wù)端的時(shí)間,記為lasttime,也可以64位毫秒數(shù)表示。
[0125]因?yàn)樗龇?wù)端71對(duì)所述用戶端72第一次發(fā)送消息時(shí),沒(méi)有所謂的上一次發(fā)送消息的時(shí)間,因此服務(wù)端對(duì)用戶端第一次發(fā)送的消息設(shè)置lasttime=0。
[0126]所述用戶端72根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將從所述服務(wù)端發(fā)送的本次消息中獲取到的所述服務(wù)端上一次消息發(fā)送時(shí)間,與查找到的用戶端上一次消息接收時(shí)間比較。
[0127]如果兩個(gè)時(shí)間相同,則說(shuō)明證明在用戶端兩次接收消息之間沒(méi)有其他消息丟失,因此可直接保存所述消息;如果兩個(gè)時(shí)間不相同,則說(shuō)明在用戶端兩次接收消息之間所述服務(wù)端還發(fā)送了其他的消息,而用戶端沒(méi)有收到,即這兩個(gè)時(shí)間之間的消息發(fā)生丟失,因此向服務(wù)端71發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
[0128]其中,所述消息重傳指令至少包括用戶端上一次消息接收時(shí)間,所述服務(wù)端71可根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;然后可以根據(jù)自身保存的發(fā)送消息記錄自行獲取服務(wù)端本次消息發(fā)送時(shí)間,在所述服務(wù)端保存的歷史發(fā)送消息記錄(如上述的發(fā)送消息隊(duì)列)中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
[0129]在一個(gè)優(yōu)選實(shí)施例中,考慮到重傳消息發(fā)送到服務(wù)端可能有延時(shí)。所述消息重傳指令進(jìn)一步包括所述服務(wù)端本次消息發(fā)送時(shí)間。則所述服務(wù)端71可以直接根據(jù)所述消息重傳指令中包含的兩個(gè)時(shí)間點(diǎn),直接查找這段時(shí)間內(nèi)對(duì)相應(yīng)用戶端發(fā)送的消息,然后執(zhí)行重傳操作。
[0130]針對(duì)服務(wù)端對(duì)用戶端第一次發(fā)送消息的情況,所述用戶端72可進(jìn)一步執(zhí)行以下處理:
[0131]判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為0,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
[0132]所述服務(wù)端71接收到所述用戶端發(fā)送的消息重傳指令后,根據(jù)所述消息重傳指令重傳相應(yīng)的消息。
[0133]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式中的全部或部分流程以及對(duì)應(yīng)的系統(tǒng)、所述音樂(lè)播放器,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各實(shí)施方式的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。
[0134]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種服務(wù)端的消息傳輸處理方法,其特征在于,包括以下步驟: 在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端; 如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
2.如權(quán)利要求1所述的服務(wù)端的消息傳輸處理方法,其特征在于,在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端的步驟包括: 接收用戶端發(fā)送的群組消息至服務(wù)端,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端。
3.如權(quán)利要求1或者2所述的服務(wù)端的消息傳輸處理方法,其特征在于,向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息的步驟包括: 根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間; 在所述服務(wù)端保存的歷史發(fā)送消息記錄中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
4.一種服務(wù)端的消息傳輸處理系統(tǒng),其特征在于,包括: 消息發(fā)送模塊,用于在服務(wù)端發(fā)送的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;` 消息重傳模塊,用于如果接收到所述用戶端發(fā)送的消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間,則向所述用戶端重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
5.如權(quán)利要求4所述的服務(wù)端的消息傳輸處理系統(tǒng),其特征在于,所述消息發(fā)送模塊還用于接收用戶端發(fā)送的群組消息至服務(wù)端,在所述群組消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,并將所述群組消息發(fā)送給所述群組的其他用戶端。
6.如權(quán)利要求4或者5所述的服務(wù)端的消息傳輸處理系統(tǒng),其特征在于,所述消息重傳模塊根據(jù)所述消息重傳指令,獲取所述用戶端上一次消息接收時(shí)間;在所述服務(wù)端保存的歷史發(fā)送消息記錄中查找從所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述服務(wù)端對(duì)所述用戶端發(fā)送的消息,將對(duì)應(yīng)的所述消息重新發(fā)送到所述用戶端。
7.一種用戶端的消息傳輸處理方法,其特征在于,包括以下步驟: 接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間; 根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
8.如權(quán)利要求7所述的用戶端的消息傳輸處理方法,其特征在于,進(jìn)一步包括: 判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為O,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
9.一種用戶端的消息傳輸處理系統(tǒng),其特征在于,包括: 消息接收模塊,用于接收服務(wù)端發(fā)送的消息,其中,所述服務(wù)端發(fā)送的消息中包括服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間; 重傳請(qǐng)求模塊,用于根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,并將所述服務(wù)端上一次消息發(fā)送時(shí)間與用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向服務(wù)端發(fā)送消息重傳指令,請(qǐng)求重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
10.如權(quán)利要求9所述的用戶端的消息傳輸處理系統(tǒng),其特征在于,所述重傳請(qǐng)求模塊判斷所述服務(wù)端上一次消息發(fā)送時(shí)間是否為0,如果是,則直接保存所述消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間。
11.一種消息傳輸方法,其特征在于,包括以下步驟: 服務(wù)端在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端; 用戶端接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間;` 服務(wù)端接收到所述消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息。
12.一種消息傳輸系統(tǒng),包括服務(wù)端和用戶端,其特征在于: 所述服務(wù)端用于在發(fā)送給用戶端的消息中添加服務(wù)端本次消息發(fā)送時(shí)間和服務(wù)端上一次消息發(fā)送時(shí)間,將所述消息發(fā)送給用戶端;并在接收到用戶端發(fā)送的消息重傳指令時(shí),重新發(fā)送所述用戶端上一次消息接收時(shí)間到所述服務(wù)端本次消息發(fā)送時(shí)間之間對(duì)所述用戶端發(fā)送的消息; 所述用戶端用于接收服務(wù)端發(fā)送的消息,并根據(jù)所述服務(wù)端本次消息發(fā)送時(shí)間更新用戶端消息接收時(shí)間,將所述服務(wù)端上一次消息發(fā)送時(shí)間與所述用戶端上一次消息接收時(shí)間比較,如果二者不相同,則向所述服務(wù)端發(fā)送消息重傳指令,其中,所述消息重傳指令包括用戶端上一次消息接收時(shí)間。
【文檔編號(hào)】H04L1/16GK103684707SQ201310713569
【公開日】2014年3月26日 申請(qǐng)日期:2013年12月20日 優(yōu)先權(quán)日:2013年12月20日
【發(fā)明者】蔣德為, 郭稷, 胡建強(qiáng), 鞏吉璋, 穆戰(zhàn)松, 李宜達(dá), 曹小飛, 郭海宇 申請(qǐng)人:廣州華多網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1