一種實(shí)時(shí)匹配通信終端的方法及服務(wù)器的制造方法
【專利摘要】本發(fā)明提供了一種實(shí)時(shí)匹配通信終端的方法及服務(wù)器,通過預(yù)先獲取進(jìn)行匹配的各終端網(wǎng)絡(luò)延遲時(shí)間,獲取各終端的匹配請求信息并記錄獲取到該信息的系統(tǒng)時(shí)間,根據(jù)系統(tǒng)時(shí)間和網(wǎng)絡(luò)延遲時(shí)間,分別計(jì)算各終端請求發(fā)出的時(shí)間,根據(jù)該請求發(fā)出時(shí)間對各終端進(jìn)行匹配。從而將匹配雙方碰撞的時(shí)間還原歸一化到同一個(gè)時(shí)間軸上進(jìn)行匹配,使相識(shí)的朋友之間,可以面對面通過手機(jī)碰撞的方式同時(shí)發(fā)出匹配請求信息,從而迅速精準(zhǔn)的匹配到對方。
【專利說明】一種實(shí)時(shí)匹配通信終端的方法及服務(wù)器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)通信領(lǐng)域,特別是一種實(shí)時(shí)匹配通信終端的方法及服務(wù)器。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展和智能手機(jī)的普及,移動(dòng)互聯(lián)網(wǎng)的增值業(yè)務(wù)類型越來越多元化。騰訊公司開發(fā)的微信,即是利用網(wǎng)絡(luò)快速發(fā)送語音短信、視頻、圖片和文字,支持多人群聊的手機(jī)聊天軟件。用戶可以通過微信與好友進(jìn)行形式上更加豐富的類似于短信、彩信等方式的聯(lián)系。
[0003]微信中的“搖一搖”功能,微信推出的一個(gè)隨機(jī)交友應(yīng)用,通過搖手機(jī)或點(diǎn)擊按鈕模擬搖一搖,可以匹配到同一時(shí)段觸發(fā)該功能的微信用戶,從而增加用戶間的互動(dòng)和微信粘度。但鑒于“搖一搖”功能的定位在于隨機(jī)交友,即陌生人之間相互認(rèn)識(shí),因而其時(shí)間和空間上的匹配范圍非常大,即使相差數(shù)秒也可以匹配上,相反,由于其匹配范圍大和隨機(jī)性,即使兩個(gè)人面對面同時(shí)搖手機(jī)卻很難匹配上,其目的是為了給用戶提供更多的機(jī)會(huì)去偶遇陌生人,對準(zhǔn)確度和成功率要求很低,具有非常大的隨機(jī)性。
[0004]但是,當(dāng)兩個(gè)認(rèn)識(shí)的人希望通過這種搖晃手機(jī)、敲打手機(jī)或碰撞手機(jī)來迅速匹配對方時(shí),現(xiàn)有技術(shù)的成功率就非常非常低了。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于解決現(xiàn)有技術(shù)中朋友之間面對面的數(shù)據(jù)交換問題,提供一種實(shí)時(shí)匹配通信終端的方法及服務(wù)器,通過系統(tǒng)時(shí)間推算匹配請求發(fā)生的時(shí)間而進(jìn)行匹配,大大提高了現(xiàn)有技術(shù)中匹配的精確性。
[0006]本發(fā)明的目的是通過下述技術(shù)方案予以實(shí)現(xiàn)的:
[0007]一種實(shí)時(shí)匹配通信終端的方法,包括以下步驟:
[0008]預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0009]獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間 Server_time_l ;
[0010]根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0011]獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間 Server_time_2 ;
[0012]根據(jù)所述系統(tǒng)時(shí)間SerVer_time_2和預(yù)先獲取的所述第二終端的網(wǎng)絡(luò)延遲時(shí)間0ffset_time_2計(jì)算計(jì)算該第二終端的第二請求時(shí)間Ask_time_2 ;
[0013]判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值IAsk_time_2_Ask_time_l I是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
[0014]本發(fā)明另外提供了一種實(shí)時(shí)匹配通信終端的服務(wù)器,包括以下單元:[0015]延遲時(shí)間獲取單元,用于預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0016]第一請求信息獲取單元,用于獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ;
[0017]第一請求時(shí)間計(jì)算單元,用于根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0018]第二請求信息獲取單元,用于獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_2 ;
[0019]第二請求時(shí)間計(jì)算單元,用于根據(jù)所述系統(tǒng)時(shí)間Server_time_2和預(yù)先獲取的該第二終端的網(wǎng)絡(luò)延遲時(shí)間0ffset_time_2計(jì)算得到第二請求時(shí)間Ask_time_2 ;
[0020]匹配單元,用于判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值|Ask_time_2-Ask_time_l是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
[0021]通過本發(fā)明實(shí)施例,相識(shí)的朋友之間,可以面對面通過手機(jī)碰撞的方式迅速匹配到對方,彌補(bǔ)了現(xiàn)有技術(shù)的空白。
【專利附圖】
【附圖說明】
[0022]此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對本發(fā)明的限定。在附圖中:
[0023]圖1為一種實(shí)時(shí)匹配通信終端的方法的流程圖;
[0024]圖2為本發(fā)明實(shí)施例一,一種實(shí)時(shí)匹配通信終端的方法的流程圖;
[0025]圖3為預(yù)先獲取各終端網(wǎng)絡(luò)延遲時(shí)間的方法示意圖;
[0026]圖4為本發(fā)明實(shí)施例二,一種實(shí)時(shí)匹配通信終端的方法的流程圖;
[0027]圖5為根據(jù)GPS信息區(qū)分匹配終端區(qū)域的方法的流程圖;
[0028]圖6為根據(jù)IP地址信息區(qū)分匹配終端區(qū)域的方法的流程圖。
[0029]圖7是本發(fā)明實(shí)施例三,一種實(shí)時(shí)匹配通信終端的服務(wù)器的結(jié)構(gòu)圖;
[0030]圖8是本發(fā)明實(shí)施例四,一種實(shí)時(shí)匹配通信終端的服務(wù)器的結(jié)構(gòu)圖;
[0031]圖9是實(shí)施例四中匹配子單元的結(jié)構(gòu)圖;
[0032]圖10是實(shí)施例四中匹配子單元的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式和附圖,對本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施方式及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
[0034]針對前述現(xiàn)有技術(shù)中所存在的問題,本發(fā)明通過計(jì)算手機(jī)匹配信號(hào)的發(fā)出時(shí)間,實(shí)現(xiàn)了精確匹配,從而實(shí)現(xiàn)了面對面的兩個(gè)人通過手機(jī)碰撞、匹配請求同時(shí)發(fā)出時(shí),可以迅速匹配上。如圖1所示,包括:
[0035]步驟101,預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0036]步驟102,獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ;[0037]步驟103,根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0038]步驟104,獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_2 ;
[0039]步驟105,根據(jù)所述系統(tǒng)時(shí)間Server_time_2和預(yù)先獲取的所述第二終端的網(wǎng)絡(luò)延遲時(shí)間0ffset_time_2計(jì)算計(jì)算該第二終端的第二請求時(shí)間Ask_time_2 ;
[0040]步驟106,判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值|Ask_time_2-Ask_time_l是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
[0041 ] 在步驟104中,從所述系統(tǒng)時(shí)間Server_time_l開始,在窗口時(shí)間tw內(nèi)獲取第二終端的匹配請求信息,其中,該窗口時(shí)間tw為系統(tǒng)記錄的延遲時(shí)間中的最大值:tw=MAX[Offset_time];
[0042]若在所述窗口時(shí)間tw內(nèi)未獲取到第二終端的匹配請求信息,則通知第一終端匹配失敗,重新獲取第一終端的請求信息。
[0043]若在所述窗口時(shí)間tw內(nèi)同時(shí)獲取到N個(gè)終端的請求信息,則分別記錄獲取到該N個(gè)終端的系統(tǒng)時(shí)間;根據(jù)該N個(gè)終端的系統(tǒng)時(shí)間和預(yù)先獲取到的該N個(gè)終端的網(wǎng)絡(luò)延遲時(shí)間分別計(jì)算該N個(gè)終端的請求時(shí)間Ask_time_x ;逐一比較該N個(gè)終端的請求時(shí)間與第一終端的請求時(shí)間差值的絕對值I Ask_time_x-Ask_time_l I是否大于預(yù)設(shè)閾值;若否,則判定該終端符合時(shí)間匹配條件;匹配所述第一終端和符合時(shí)間匹配條件的終端;若該N個(gè)終端的請求時(shí)間與第一請求時(shí)間的差值均大于預(yù)設(shè)閾值,則通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
[0044]其中,匹配第一終端和符合時(shí)間匹配條件的終端之前,還包括:獲取符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息;根據(jù)所述符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息,將與所述第一終端不在同一區(qū)域的符合時(shí)間匹配條件的終端終止匹配。
[0045]步驟101所述的預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間具體為,所述各終端對服務(wù)器進(jìn)行輪詢,記錄所述各終端每次輪詢的起始時(shí)間t_start和終止時(shí)間t_end,并將該起始時(shí)間和終止時(shí)間在下一次輪詢時(shí)發(fā)送到服務(wù)器;
[0046]網(wǎng)絡(luò)延遲時(shí)間Offset_time的計(jì)算方法為:
[0047]Offset_time={ Σ [ (t_end_t_start)/2]}/n,其中 η 為服務(wù)器記載的起始時(shí)間和終止時(shí)間的個(gè)數(shù)。
[0048]上述步驟中,計(jì)算請求時(shí)間的方法為:Ask_time=Server_time-Offset_time。其中,Ask_time為請求時(shí)間;Server_time為系統(tǒng)時(shí)間;0ffset_time為延遲時(shí)間。
[0049]例如:
[0050]用戶終端A從本地時(shí)間12:00:00:00開始輪詢,服務(wù)器接收到輪詢信息的系統(tǒng)時(shí)間為12:00:00:58,而用戶終端A接收到服務(wù)器返回信息的時(shí)間為12:00:01:00,這樣,此次輪詢的延遲時(shí)間便為(12:00:01:00-12:00:00:00) /2=00:00:00:30,計(jì)算η次輪詢的延遲時(shí)間,然后求平均值。
[0051]下面通過具體實(shí)施例進(jìn)行說明:[0052]實(shí)施例一
[0053]如圖2所示,為本實(shí)施例一種實(shí)時(shí)匹配通信終端的方法的流程圖。
[0054]在此交代一下本實(shí)施例的應(yīng)用場景:
[0055]甲乙兩個(gè)用戶分別持有移動(dòng)終端A和B,希望通過本方案迅速匹配對方。實(shí)現(xiàn)本方案的整個(gè)過程時(shí)間很短,因而兩個(gè)用戶不會(huì)在該過程中進(jìn)行大范圍的移動(dòng),即,所處的網(wǎng)絡(luò)環(huán)境不變。
[0056]具體的,A和B會(huì)拿各自的移動(dòng)終端在一起碰撞,這樣,兩個(gè)終端便會(huì)同時(shí)發(fā)出匹配請求信息。
[0057]步驟201預(yù)先獲A和B的網(wǎng)絡(luò)延遲時(shí)間并記錄.[0058]首先,甲乙兩個(gè)人要打開移動(dòng)終端A和B中的“實(shí)時(shí)匹配”應(yīng)用。打開之后,兩個(gè)終端開始與服務(wù)器通過Http請求進(jìn)行輪詢,該輪詢直到“實(shí)時(shí)匹配”發(fā)生才結(jié)束。與此同時(shí),客戶端設(shè)備的重力傳感器開始監(jiān)測用戶的碰撞動(dòng)作。
[0059]為節(jié)約通信資源,客戶端輪詢過程中,向服務(wù)器僅發(fā)送心跳數(shù)據(jù)包,當(dāng)終端獲取到服務(wù)器返回的servertime時(shí),會(huì)根據(jù)發(fā)出心跳數(shù)據(jù)包的時(shí)間和servertime計(jì)算出本次輪詢的網(wǎng)絡(luò)延遲時(shí)間。
[0060]輪詢結(jié)束后,系統(tǒng)會(huì)根據(jù)每次獲取的網(wǎng)絡(luò)延遲時(shí)間計(jì)算平均值,將該平均值進(jìn)行記錄,作為系統(tǒng)預(yù)先獲取的網(wǎng)絡(luò)延遲時(shí)間0ff_time,進(jìn)行后續(xù)計(jì)算。
[0061]如圖3所示,為客戶端與服務(wù)器交互的示意圖,如圖所示,垂直方向是時(shí)間軸,每一個(gè)三角形代表客戶端與服務(wù)器的一次請求與應(yīng)答。示意圖從InitailingState狀態(tài)開始,直到雙方匹配確認(rèn)成功。每次的請求與響應(yīng)是一次輪詢,在每次輪詢中都不傳遞大的數(shù)據(jù),是非常小的心跳數(shù)據(jù),每次輪詢服務(wù)器至少將服務(wù)器的系統(tǒng)時(shí)間(servertime,單位是秒,值為double類型的浮點(diǎn)數(shù),最多精確到小數(shù)點(diǎn)后兩位)帶回,如果服務(wù)器有新的數(shù)據(jù)需要傳個(gè)客戶端,則順帶將其帶回。
[0062]Bump_time是碰撞時(shí)刻,這是服務(wù)器匹配的一個(gè)關(guān)鍵參數(shù),服務(wù)器需要知道雙發(fā)的bump_time,如圖可知:
[0063]Bump_time=t_server - Offset_time
[0064]但是服務(wù)器并不知道OfTsetjime是多少,故服務(wù)器需要根據(jù)前面輪詢傳過來的maxoffset 和 minoffset 去估算 0ffset_timeo
[0065]此參數(shù)的估算,對匹配的效果影響非常大,要盡可能地精確得估算到真實(shí)的值,必須要保持在某個(gè)精度內(nèi)在此,提供如下三個(gè)方案:
[0066]方案一:使用服務(wù)器最近一次的maxoffset的值做Offset_time。
[0067]方案二:使用maxoffset的平均值,即
[0068]0ffset_time=l/n* (maxoffsetl+maxoffset2+...+maxoffsetN)。
[0069]方案三:使用概率上的估算方法,如最大似然估計(jì)。
[0070]其中,方案一的準(zhǔn)確性最低,方案三中的最大似然估計(jì)需要服務(wù)器提供大量的輪詢數(shù)據(jù)。因而,本實(shí)施例優(yōu)選的,采取方案二作為本方案的估算法方法。
[0071]例如:
[0072]移動(dòng)終端A從本地時(shí)間12:00:00:00開始輪詢,服務(wù)器接收到輪詢信息的系統(tǒng)時(shí)間為12:00:00:58,而用戶終端A接收到服務(wù)器返回信息的時(shí)間為12:00:01:00,這樣,此次輪詢的延遲時(shí)間便為(12:00:01:00-12:00:00:00) /2=00:00:00:30,計(jì)算η次輪詢的延遲
時(shí)間,然后求平均值。計(jì)算得到的移動(dòng)終端A的延遲時(shí)間為28毫秒,同理計(jì)算得到的移動(dòng)終端B的延遲時(shí)間為30毫秒。
[0073]步驟202,獲取A的匹配請求信息,并記錄獲取到該請求信息的系統(tǒng)時(shí)間Server_time—A0
[0074]其中,由于網(wǎng)絡(luò)延遲時(shí)間不同,用戶A和B匹配請求到達(dá)服務(wù)器的時(shí)間不會(huì)絕對相同,將請求信息先到達(dá)服務(wù)器的終端作為第一終端。
[0075]本實(shí)施例中,假設(shè)先收到A的匹配請求信息。
[0076]當(dāng)重力傳感器檢測到設(shè)備的碰撞動(dòng)作之后,立即觸發(fā)終端向服務(wù)器發(fā)送匹配請求信息,由于該請求是通過碰撞的動(dòng)作觸發(fā)的,因而,從理論上講,兩個(gè)終端發(fā)出請求的時(shí)間是同一時(shí)間。這與微信中的“搖一搖”的觸發(fā)動(dòng)作不同,“搖一搖”無法實(shí)現(xiàn)匹配雙方“同一時(shí)間”發(fā)出匹配信息,因而也無法實(shí)現(xiàn)面對面的匹配。
[0077]步驟203,根據(jù)Server_time_A和預(yù)先獲取的A的網(wǎng)絡(luò)延遲時(shí)間Offset_time_A計(jì)算A的請求時(shí)間Ask_time_A。
[0078]計(jì)算請求時(shí)間的方法為:Ask_time=Server_time-Offset_time。
[0079]根據(jù)該方法,Ask_time_A=Server_time_A-OfTset_time_A。
[0080]由于兩個(gè)終端所處的網(wǎng)絡(luò)環(huán)境相同,從輪詢開始,直至碰撞結(jié)束,都在相同的網(wǎng)絡(luò)環(huán)境,因而通過上述方法計(jì)算得到的請求時(shí)間非常接近實(shí)際碰撞發(fā)生時(shí)間。
[0081]假設(shè)甲乙兩個(gè)人將移動(dòng)終端A和B進(jìn)行碰撞時(shí),移動(dòng)終端A的本地時(shí)間為12:00:10:00,服務(wù)器接收到A的匹配請求的系統(tǒng)時(shí)間為12:00:10:58,則計(jì)算得到的請求時(shí)間為:
[0082]Ask_time_A=12:00:10:58-00:00:00:28=12:00:10:30。
[0083]步驟204,接收到A的請求信息開始,在窗口時(shí)間tw內(nèi)獲取B的匹配請求信息并記錄系統(tǒng)時(shí)間Server_time_B。
[0084]其中,該窗口時(shí)間tw為系統(tǒng)記錄的A和B的延遲時(shí)間中較大的值:tw=MAX[Offset_time]。
[0085]假設(shè)A和B在同一時(shí)間碰撞,服務(wù)器先收到A的碰撞信息,但由于網(wǎng)絡(luò)速度不一致,可能B的碰撞信息較晚一段時(shí)間內(nèi)才會(huì)過來,那么A至少要給B —個(gè)機(jī)會(huì)等待B的過來,這個(gè)等待的時(shí)間長即為窗口時(shí)間tw。
[0086]tw的大小至少應(yīng)該大于B的網(wǎng)絡(luò)延遲maxoffset_b,但是服務(wù)器并不知道應(yīng)該用誰的maxoffset,所以,為了保證給所有的人都有一個(gè)機(jī)會(huì)進(jìn)行和他人匹配,服務(wù)器可使用當(dāng)前已知的最大 maxoffset,即:tw=MAX[Offset_time]。
[0087]在這里,tw的值具體為30毫秒。
[0088]步驟205,計(jì)算B的請求時(shí)間。
[0089]Ask_time_B=Server_time_B_0ffset_time_B ;
[0090]假設(shè)服務(wù)器收到B的請求信息的系統(tǒng)時(shí)間為12:00:10:59,則計(jì)算得到B的請求時(shí)間為:Ask_time_B=12:00:10:59-00:00:00:30=12:00:10:29。
[0091]步驟206,比較A和B請求時(shí)間差值的絕對值| Ask_time_B_Ask_time_A |是否大于預(yù)設(shè)閾值,若否,則匹配A和B,若是,則通知A和B匹配失敗。[0092]在本實(shí)施例中,|Ask_time_B-Ask_time_A|的值為I毫秒。
[0093]預(yù)設(shè)閾值是根據(jù)多次試驗(yàn)的結(jié)果預(yù)先設(shè)定的值,一般不大于tw,最長不超過50毫秒,即0.5秒。本實(shí)施例優(yōu)選的,小于最小網(wǎng)絡(luò)延遲值,具體到本實(shí)施例,就是小于28毫秒。
[0094]例如,預(yù)設(shè)閾值為20毫秒,則很明顯,I毫秒小于20毫秒,匹配A和B。
[0095]實(shí)施例二
[0096]如圖4所示,為本實(shí)施例一種實(shí)時(shí)匹配通信終端的方法的流程圖。
[0097]假設(shè)當(dāng)A與B進(jìn)行碰撞的同時(shí),還有C、D、E、F四個(gè)用戶,也要進(jìn)行碰撞,在同一時(shí)段開啟了匹配功能,其中,A和B、C和D在北京市海淀區(qū),而E和F在陜西省西安市。
[0098]步驟401,預(yù)先獲取A、B、C、D、E、F的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0099]在同一時(shí)段內(nèi),系統(tǒng)會(huì)獲取到A、B、C、D、E、F六個(gè)用戶的終端的輪詢,碰撞發(fā)生時(shí),分別計(jì)算各終端對應(yīng)的網(wǎng)絡(luò)延遲時(shí)間。
[0100]步驟402,獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ;
[0101]在這里,假設(shè)A用戶的終端為第一終端,S卩,系統(tǒng)最先受到A用戶發(fā)出的匹配請求信息。
[0102]步驟403,根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0103]步驟404,從該系統(tǒng)時(shí)間Server_time_l開始,在窗口時(shí)間tw內(nèi)獲取剩余N_1個(gè)終端的匹配請求信息并記錄獲取到該請求信息的系統(tǒng)時(shí)間Server_time_x ;
[0104]本實(shí)施例中,N為6,則在窗口時(shí)間內(nèi),共獲取到5個(gè)終端的匹配請求信息。
[0105]其中,tw為A、B、C、D、E、F六個(gè)用戶的終端延遲時(shí)間中的最大值。
[0106]本實(shí)施例中,N為6,假設(shè)題設(shè)剩余5個(gè)用戶的請求信息全會(huì)出現(xiàn)在在窗口時(shí)間內(nèi),則共獲取到5個(gè)終端的匹配請求信息。
[0107]當(dāng)然,也會(huì)有其它的用戶G、H、I等,請求信息不會(huì)出現(xiàn)在A的窗口時(shí)間tw中。
[0108]步驟405,根據(jù)該5個(gè)終端的系統(tǒng)時(shí)間和預(yù)先獲取到的該5個(gè)終端的網(wǎng)絡(luò)延遲時(shí)間分別計(jì)算該5個(gè)終端的請求時(shí)間Ask_time_x ;
[0109]步驟406,逐一比較該5個(gè)終端的請求時(shí)間與第一終端的請求時(shí)間差值的絕對值
IAsk_time_x_Ask_time_l I是否大于預(yù)設(shè)閾值;
[0110]本發(fā)明優(yōu)選的,將預(yù)設(shè)閾值設(shè)定為0.2秒。當(dāng)然還可以更短,最長不超過0.5秒。
[0111]假設(shè)C和D的請求時(shí)間與A的請求時(shí)間差值絕對值大于0.5秒,超過預(yù)設(shè)閾值,則:
[0112]步驟407,匹配 A 和 B、E、F。
[0113]若B、C、D、E、F六個(gè)用戶請求時(shí)間與A的請求時(shí)間差值均大于0.5秒,不在預(yù)設(shè)閾值內(nèi),則通知第一終端A匹配失敗。
[0114]重新接收第一端的匹配請求信息。
[0115]如圖5所示,在上述步驟407之前,還包括:
[0116]步驟501,獲取符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息;
[0117]S卩,獲取B、C、D、E、F六個(gè)用戶請求的GPS信息,和預(yù)先獲取的A用戶的GPS比較,發(fā)現(xiàn)E和F與A不在一個(gè)地理區(qū)域內(nèi),因而,步驟407中僅需匹配A和B。[0118]步驟502,根據(jù)所述符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息,將與所述第一終端不在同一區(qū)域的符合時(shí)間匹配條件的終端終止匹配。
[0119]或,如圖6所示,
[0120]步驟601,獲取符合時(shí)間匹配條件的終端的IP地址信息和第一終端的IP地址信息;
[0121]步驟602,將IP地址與第一終端的IP地址不在一個(gè)地區(qū)的終端終止匹配。
[0122]通過上述實(shí)施例,本發(fā)明可以使面對面的兩個(gè)人或者多個(gè)人的移動(dòng)終端以碰撞的方式,實(shí)現(xiàn)彼此之間的迅速匹配。
[0123]實(shí)施例三
[0124]如圖7所示,為本實(shí)施例三,一種實(shí)時(shí)匹配通信終端的服務(wù)器的結(jié)構(gòu)圖。
[0125]包括:
[0126]延遲時(shí)間獲取單元701,用于預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0127]該延遲時(shí)間獲取單元包括:
[0128]輪詢子單元7011,用于接收所述各終端的輪詢數(shù)據(jù)包,該數(shù)據(jù)包中包括所述各終端記錄的上一次輪詢的起始時(shí)間t_start和終止時(shí)間t_end ;
[0129]網(wǎng)絡(luò)延遲時(shí)間計(jì)算子單元7012,用于計(jì)算網(wǎng)絡(luò)延遲時(shí)間Offset_time:
[0130]Offset_time={ Σ [ (t_end_t_start)/2]}/n,其中 η 為服務(wù)器記載的起始時(shí)間和終止時(shí)間的個(gè)數(shù)。
[0131]第一請求信息獲取單元702,用于獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ;
[0132]第一請求時(shí)間計(jì)算單元703,用于根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0133]窗口時(shí)間獲取子單元704,用于獲取系統(tǒng)記錄的延遲時(shí)間中的最大值作為窗口時(shí)間:tw=MAX[Offset_time]。
[0134]第二請求信息獲取單元705,用于獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_2 ;
[0135]該第二請求信息獲取單元705包括:
[0136]第二請求信息獲取子單元7051,用于從所述系統(tǒng)時(shí)間SerVer_time_l開始,在窗口時(shí)間tw內(nèi)獲取第二終端的匹配請求信息;
[0137]初始化子單元7052,用于當(dāng)所述窗口時(shí)間tw內(nèi)未獲取到第二終端的匹配請求信息時(shí),通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
[0138]第二請求時(shí)間計(jì)算單元706,用于根據(jù)所述系統(tǒng)時(shí)間Server_time_2和預(yù)先獲取的該第二終端的網(wǎng)絡(luò)延遲時(shí)間0ffset_time_2計(jì)算得到第二請求時(shí)間Ask_time_2 ;
[0139]匹配單元707,用于判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值|Ask_time_2-Ask_time_l是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
[0140]上述703和706中,用于計(jì)算請求時(shí)間的方法為:Ask_time=Server_time-Offset_time。[0141]其中,Ask_time為請求時(shí)間;Server_time為系統(tǒng)時(shí)間;0ffset_time為延遲時(shí)間
[0142]實(shí)施例四
[0143]如圖8所示,為本實(shí)施例一種實(shí)時(shí)匹配通信終端的服務(wù)器的結(jié)構(gòu)圖。
[0144]延遲時(shí)間獲取單元801,用于預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄;
[0145]第一請求信息獲取單元802,用于獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ;
[0146]第一請求時(shí)間計(jì)算單元803,用于根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ;
[0147]窗口時(shí)間獲取子單元804,用于獲取系統(tǒng)記錄的延遲時(shí)間中的最大值作為窗口時(shí)間:tw=MAX[Offset_time]。
[0148]系統(tǒng)時(shí)間獲取子單元805,用于在所述窗口時(shí)間tw內(nèi)同時(shí)獲取到N個(gè)終端的請求信息時(shí),分別記錄獲取到該N個(gè)終端的系統(tǒng)時(shí)間;
[0149]請求時(shí)間計(jì)算子單元806,用于根據(jù)該N個(gè)終端的系統(tǒng)時(shí)間和預(yù)先獲取到的該N個(gè)終端的網(wǎng)絡(luò)延遲時(shí)間分別計(jì)算該N個(gè)終端的請求時(shí)間Ask_time_x, l〈x〈N ;
[0150]匹配判斷子單元807,用于逐一比較該N個(gè)終端的請求時(shí)間與第一終端的請求時(shí)間差值的絕對值I Ask_time_x-Ask_time_l I是否大于預(yù)設(shè)閾值;
[0151]匹配子單元808,用于當(dāng)所述絕對值不大于所述預(yù)設(shè)閾值時(shí),判定該終端符合時(shí)間匹配條件,并匹配所述第一終端和符合時(shí)間匹配條件的終端;
[0152]具體實(shí)施過程中,如搜索不到GPS信息,還可以根據(jù)終端的IP來判斷區(qū)域。
[0153]初始化子單元809,用于當(dāng)該N個(gè)終端的請求時(shí)間與第一請求時(shí)間的差值均大于預(yù)設(shè)閾值時(shí),通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
[0154]如圖9所示,上述匹配子單元808中還包括:
[0155]GPS信息獲取單元901,用于獲取符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息;
[0156]位置匹配單元902,用于根據(jù)所述符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息,將與所述第一終端不在同一區(qū)域的符合時(shí)間匹配條件的終端終止匹配。
[0157]或,如圖10所示,
[0158]IP地址信息獲取單元1001,用于獲取符合時(shí)間匹配條件的終端的IP地址信息和第一終端的IP地址信息;
[0159]位置匹配單元1002,用于將IP地址與第一終端的IP地址不在一個(gè)地區(qū)的終端終
止匹配。
[0160]通過上述實(shí)施例,本發(fā)明可以使面對面的兩個(gè)人或者多個(gè)人的移動(dòng)終端以碰撞的方式,實(shí)現(xiàn)彼此之間的迅速匹配。
[0161]本領(lǐng)域一般技術(shù)人員在此設(shè)計(jì)思想之下所做任何不具有創(chuàng)造性的改造,均應(yīng)視為在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種實(shí)時(shí)匹配通信終端的方法,其特征在于,包括以下步驟: 預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄; 獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ; 根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ; 獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_2 ; 根據(jù)所述系統(tǒng)時(shí)間Server_time_2和預(yù)先獲取的該第二終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_2計(jì)算得到第二請求時(shí)間Ask_time_2 ; 判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值IAsk_time_2-Ask_time_l是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
2.如權(quán)利要求1所述實(shí)時(shí)匹配通信終端的方法,其特征在于,所述獲取第二終端的匹配請求信息具體為: 從所述系統(tǒng)時(shí)間SerVer_time_l開始,在窗口時(shí)間tw內(nèi)獲取第二終端的匹配請求信息,其中,該窗口時(shí)間tw為系統(tǒng)記錄的延遲時(shí)間中的最大值:tw=MAX[Offset_time]; 若在所述窗口時(shí)間tw內(nèi)未獲取到第二終端的匹配請求信息,則通知第一終端匹配失敗,重新獲取第一終端的請求信息。
3.如權(quán)利要求2所述實(shí)時(shí)匹配通信終端的方法,其特征在于: 若在所述窗口時(shí)間tw內(nèi)同時(shí)獲取到N個(gè)終端的請求信息,則分別記錄獲取到該N個(gè)終端的系統(tǒng)時(shí)間; 根據(jù)該N個(gè)終端的系統(tǒng)時(shí)間和預(yù)先獲取到的該N個(gè)終端的網(wǎng)絡(luò)延遲時(shí)間分別計(jì)算該N個(gè)終端的請求時(shí)間Ask_time_x ; 逐一比較該N個(gè)終端的請求時(shí)間與第一終端的請求時(shí)間差值的絕對值|Ask_time_x-Ask_time_l |是否大于預(yù)設(shè)閾值; 若否,則判定該終端符合時(shí)間匹配條件;匹配所述第一終端和符合時(shí)間匹配條件的終端; 若該N個(gè)終端的請求時(shí)間與第一請求時(shí)間的差值均大于預(yù)設(shè)閾值,則通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
4.如權(quán)利要求3所述實(shí)時(shí)匹配通信終端的方法,其特征在于,所述匹配所述第一終端和符合時(shí)間匹配條件的終端之前,還包括: 獲取符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息; 根據(jù)所述符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息,將與所述第一終端不在同一區(qū)域的符合時(shí)間匹配條件的終端終止匹配。
5.如權(quán)利要求3所述實(shí)時(shí)匹配通信終端的方法,其特征在于,所述匹配所述第一終端和符合時(shí)間匹配條件的終端之前,還包括: 獲取符合時(shí)間匹配條件的終端的IP地址信息和第一終端的IP地址信息; 將IP地址與第一終端的IP地址不在一個(gè)地區(qū)的終端終止匹配。
6.如權(quán)利要求1所述實(shí)時(shí)匹配通信終端的方法,其特征在于,所述預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間具體為: 所述各終端對服務(wù)器進(jìn)行輪詢,記錄所述各終端每次輪詢的起始時(shí)間t_start和終止時(shí)間t_end,并將該起始時(shí)間和終止時(shí)間在下一次輪詢時(shí)發(fā)送到服務(wù)器; 網(wǎng)絡(luò)延遲時(shí)間Offset_time的計(jì)算方法為: Offset_time={ Σ [ (t_end_t_start)/2]}/n,其中η為服務(wù)器記載的起始時(shí)間和終止時(shí)間的個(gè)數(shù)。
7.如權(quán)利要求1所述實(shí)時(shí)匹配通信終端的方法,其特征在于,計(jì)算請求時(shí)間的方法為:Ask_time=Server_time-Offset_time ; 其中,Ask_time為請求時(shí)間;Server_time為系統(tǒng)時(shí)間;Offset_time為延遲時(shí)間。
8.一種實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,包括以下單元: 延遲時(shí)間獲取單元,用于預(yù)先獲取進(jìn)行匹配的各終端的網(wǎng)絡(luò)延遲時(shí)間并記錄; 第一請求信息獲取單元,用于獲取第一終端的匹配請求信息,并記錄獲取到該第一終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_l ; 第一請求時(shí)間計(jì)算單元,用于根據(jù)該系統(tǒng)時(shí)間Server_time_l和預(yù)先獲取的該第一終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_l計(jì)算得到第一請求時(shí)間Ask_time_l ; 第二請求信息獲取單元,用于獲取第二終端的匹配請求信息并記錄獲取到該第二終端的匹配請求信息的系統(tǒng)時(shí)間Server_time_2 ; 第二請求時(shí)間計(jì)算單元,用于根據(jù)所述系統(tǒng)時(shí)間Server_time_2和預(yù)先獲取的該第二終端的網(wǎng)絡(luò)延遲時(shí)間Offset_time_2計(jì)算得到第二請求時(shí)間Ask_time_2 ; 匹配單元,用于判斷所述第二請求時(shí)間和所述第一請求時(shí)間差值的絕對值|Ask_time_2-Ask_time_l是否大于預(yù)設(shè)閾值,若否,則匹配所述第一終端和第二終端,若是,則通知所述第一終端和第二終端匹配失敗。
9.如權(quán)利要求8所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于: 還包括:窗口時(shí)間獲取子單元,用于獲取系統(tǒng)記錄的延遲時(shí)間中的最大值作為窗口時(shí)間:tw=MAX[Offset_time]; 所述第二請求信息獲取單元包括: 第二請求信息獲取子單元,用于從所述系統(tǒng)時(shí)間Server_time_l開始,在窗口時(shí)間tw內(nèi)獲取第二終端的匹配請求信息; 初始化子單元,用于當(dāng)所述窗口時(shí)間tw內(nèi)未獲取到第二終端的匹配請求信息時(shí),通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
10.如權(quán)利要求9所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,還包括: 系統(tǒng)時(shí)間獲取子單元,用于在所述窗口時(shí)間tw內(nèi)同時(shí)獲取到N個(gè)終端的請求信息時(shí),分別記錄獲取到該N個(gè)終端的系統(tǒng)時(shí)間; 請求時(shí)間計(jì)算子單元,用于根據(jù)該N個(gè)終端的系統(tǒng)時(shí)間和預(yù)先獲取到的該N個(gè)終端的網(wǎng)絡(luò)延遲時(shí)間分別計(jì)算該N個(gè)終端的請求時(shí)間Ask_time_x, l〈x〈N ; 匹配判斷子單元,用于逐一比較該N個(gè)終端的請求時(shí)間與第一終端的請求時(shí)間差值的絕對值I Ask_time_x_Ask_time_l I是否大于預(yù)設(shè)閾值; 匹配子單元,用于當(dāng)所述絕對值不大于所述預(yù)設(shè)閾值時(shí),判定該終端符合時(shí)間匹配條件,并匹配所述第一終端和符合時(shí)間匹配條件的終端; 初始化子單元,用于當(dāng)該N個(gè)終端的請求時(shí)間與第一請求時(shí)間的差值均大于預(yù)設(shè)閾值時(shí),通知第一終端匹配失敗,并重新獲取第一終端的請求信息。
11.如權(quán)利要求10所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,還包括: GPS信息獲取單元,用于獲取符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息; 位置匹配單元,用于根據(jù)所述符合時(shí)間匹配條件的終端的GPS信息和第一終端的GPS信息,將與所述第一終端不在同一區(qū)域的符合時(shí)間匹配條件的終端終止匹配。
12.如權(quán)利要求10所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,還包括: IP地址信息獲取單元,用于獲取符合時(shí)間匹配條件的終端的IP地址信息和第一終端的IP地址信息; 位置匹配單元,用于將IP地址與第一終端的IP地址不在一個(gè)地區(qū)的終端終止匹配。
13.如權(quán)利要求8所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,所述延遲時(shí)間獲取單元包括: 輪詢子單元,用于接收所述各終端的輪詢數(shù)據(jù)包,該數(shù)據(jù)包中包括所述各終端記錄的上一次輪詢的起始時(shí)間t_start和終止時(shí)間t_end ; 網(wǎng)絡(luò)延遲時(shí)間計(jì)算子單元,用于計(jì)算網(wǎng)絡(luò)延遲時(shí)間Offset_time: Offset_time={ Σ [ (t_end_t_start)/2]}/n,其中n為服務(wù)器記載的起始時(shí)間和終止時(shí)間的個(gè)數(shù)。
14.如權(quán)利要求8所述實(shí)時(shí)匹配通信終端的服務(wù)器,其特征在于,所述第一請求時(shí)間計(jì)算單元和第二請求時(shí)間計(jì)算單元中,用于計(jì)算請求時(shí)間的方法為:Ask_time=Server_time-Offset_time ; 其中,Ask—time為請求時(shí)間;Server—time為系統(tǒng)時(shí)間;0ffset—time為延遲時(shí)間。
【文檔編號(hào)】H04M1/725GK104010069SQ201310059734
【公開日】2014年8月27日 申請日期:2013年2月26日 優(yōu)先權(quán)日:2013年2月26日
【發(fā)明者】宋曉鋒 申請人:北京開心人信息技術(shù)有限公司