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