一種p2p通信方法、p2p服務(wù)器以及終端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種P2P通信方法、P2P服務(wù)器以及終端。
【背景技術(shù)】
[0002]隨著移動(dòng)視頻技術(shù)及物業(yè)設(shè)施智能化的發(fā)展,一種新型的物業(yè)管理手段出現(xiàn)在大眾視野,即物業(yè)管理員可以通過(guò)多媒體視音頻等技術(shù)手段對(duì)現(xiàn)場(chǎng)進(jìn)行控制監(jiān)督、互動(dòng)交流與即時(shí)指揮。
[0003]如圖1所示的智能物業(yè)管理平臺(tái)即時(shí)指揮解決方案,物業(yè)管理員可以通過(guò)P2P(Peer-to-Peer,對(duì)等網(wǎng)絡(luò)結(jié)構(gòu))通信的方式在不同的應(yīng)用環(huán)境下對(duì)不同場(chǎng)景進(jìn)行實(shí)時(shí)監(jiān)控與指揮,當(dāng)物業(yè)管理現(xiàn)場(chǎng)突發(fā)某種緊急狀況時(shí),物業(yè)管理員可以身臨其境的直接參與到事發(fā)現(xiàn)場(chǎng),及時(shí)了解事發(fā)現(xiàn)場(chǎng)的設(shè)施狀況與人員情況,并能及時(shí)與事發(fā)現(xiàn)場(chǎng)的人員進(jìn)行互動(dòng)交流,在實(shí)際應(yīng)用中有效解決了解決物業(yè)管理者無(wú)法及時(shí)到達(dá)現(xiàn)場(chǎng),但能夠充分了解事發(fā)現(xiàn)場(chǎng)狀態(tài),并最終達(dá)到主動(dòng)指揮調(diào)度且可以作出合理而有效的指揮研判決策的目的。
[0004]在傳統(tǒng)的物業(yè)管理平臺(tái)中,常在局域網(wǎng)的環(huán)境下對(duì)物業(yè)管理局域中的各個(gè)設(shè)施進(jìn)行管理。然而,隨著客戶對(duì)物業(yè)管理平臺(tái)互聯(lián)互通的需求,局域網(wǎng)的設(shè)置環(huán)境已無(wú)法滿足物業(yè)管理的要求。因此,基于互聯(lián)網(wǎng)環(huán)境的智能物業(yè)管理平臺(tái)應(yīng)運(yùn)而生,但在互聯(lián)網(wǎng)環(huán)境下,由于防火墻、寬帶接入方式以及路由器轉(zhuǎn)發(fā)規(guī)則的不同,使得原來(lái)在局域網(wǎng)上能連通的業(yè)務(wù),在互聯(lián)網(wǎng)環(huán)境下必須實(shí)現(xiàn)網(wǎng)絡(luò)地址轉(zhuǎn)換NAT穿透技術(shù)才能夠使業(yè)務(wù)進(jìn)行。
[0005]NAT,是指在一個(gè)網(wǎng)絡(luò)內(nèi)部,可以根據(jù)需要隨意自定義而不需要經(jīng)過(guò)申請(qǐng)的網(wǎng)絡(luò)之間互連的協(xié)議IP地址,當(dāng)內(nèi)部的計(jì)算機(jī)要與外部網(wǎng)絡(luò)進(jìn)行通訊時(shí),NAT設(shè)備(比如路由器)負(fù)責(zé)將其內(nèi)部的IP地址轉(zhuǎn)換為合法的IP地址進(jìn)行通信。NAT穿透技術(shù)可分為對(duì)稱性NAT技術(shù)和非對(duì)稱性NAT技術(shù),其中,非對(duì)稱性NAT技術(shù)又細(xì)分為:1、全錐NAT技術(shù),NAT可以將所有來(lái)自相同內(nèi)部IP地址和端口的請(qǐng)求映射到相同的外部IP地址和端口,且任何一個(gè)外部主機(jī)均可通過(guò)該映射發(fā)送IP包到該內(nèi)部主機(jī);2、限制性錐NAT技術(shù),NAT可以把所有來(lái)自相同內(nèi)部IP地址和端口的請(qǐng)求映射到相同的外部IP地址和端口,但只有當(dāng)內(nèi)部主機(jī)先給外部主機(jī)發(fā)送IP包,該外部主機(jī)才能向該內(nèi)部主機(jī)發(fā)送IP包;3、端口限制性錐NAT技術(shù),與限制性錐NAT類似,但多了端口號(hào)的限制,即只有內(nèi)部主機(jī)先向外部主機(jī)發(fā)送數(shù)據(jù)包,該外部主機(jī)才能夠把特定端口號(hào)的數(shù)據(jù)包發(fā)送給該內(nèi)部主機(jī)。由于在物業(yè)管理的實(shí)際應(yīng)用中大多數(shù)采用非對(duì)稱性NAT技術(shù)實(shí)現(xiàn)雙向數(shù)據(jù)傳輸,因此,為了實(shí)現(xiàn)基于互聯(lián)網(wǎng)環(huán)境的智能物業(yè)管理平臺(tái),急需要開發(fā)出一種能夠?qū)崿F(xiàn)非對(duì)稱NAT穿透技術(shù)的P2P通信方法。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供了一種P2P通信方法、P2P服務(wù)器以及終端,能夠?qū)崿F(xiàn)非對(duì)稱NAT穿透技術(shù),可以達(dá)到基于互聯(lián)網(wǎng)環(huán)境的智能物業(yè)管理平臺(tái)進(jìn)行數(shù)據(jù)雙向傳輸?shù)哪康摹?br>[0007]有鑒于此,本發(fā)明第一方面提供一種P2P通信方法,可包括:
[0008]對(duì)等網(wǎng)絡(luò)結(jié)構(gòu)P2P服務(wù)器接收第一終端發(fā)送的協(xié)助打洞請(qǐng)求消息,協(xié)助打洞請(qǐng)求消息包括第二終端的身份標(biāo)識(shí)ID;
[0009]P2P服務(wù)器根據(jù)協(xié)助打洞請(qǐng)求消息查詢本地保存的呼叫列表中是否存在第二終端登錄在線的狀態(tài)信息標(biāo)記;
[0010]若存在,則P2P服務(wù)器向第二終端發(fā)送通知打洞請(qǐng)求消息,以使得第二終端基于通知打洞請(qǐng)求消息向P2P服務(wù)器發(fā)送通知打洞響應(yīng)消息,并向第一終端發(fā)送開始打洞請(qǐng)求消息,以指示第一終端進(jìn)行打洞,通知打洞請(qǐng)求消息包括第一終端的相關(guān)信息。
[0011]結(jié)合本發(fā)明實(shí)施例的第一方面,在本發(fā)明實(shí)施例的第一方面的第一種實(shí)施方式中,相關(guān)信息包括網(wǎng)絡(luò)之間互連的協(xié)議IP地址和/或端口。
[0012]結(jié)合本發(fā)明實(shí)施例的第一方面,或本發(fā)明實(shí)施例的第一方面的第一種實(shí)施方式,在本發(fā)明實(shí)施例的第一方面的第二種實(shí)施方式中,P2P服務(wù)器根據(jù)協(xié)助打洞請(qǐng)求消息查詢本地保存的呼叫列表中是否存在第二終端登錄在線的狀態(tài)信息標(biāo)記之前,該方法還包括:
[0013]P2P服務(wù)器獲取協(xié)助打洞請(qǐng)求消息中第二終端的ID;
[0014]P2P服務(wù)器根據(jù)ID查詢呼叫列表中是否存在第二終端的注冊(cè)信息;
[0015]若存在,則觸發(fā)P2P服務(wù)器根據(jù)協(xié)助打洞請(qǐng)求消息查詢呼叫列表中是否存在第二終端登錄在線的狀態(tài)信息標(biāo)記的步驟。
[0016]結(jié)合本發(fā)明實(shí)施例的第一方面,本發(fā)明實(shí)施例的第一方面的第一種實(shí)施方式或第二種實(shí)施方式,在本發(fā)明實(shí)施例的第一方面的第三種實(shí)施方式中,該方法還包括:
[0017]P2P服務(wù)器接收第三終端的登錄請(qǐng)求消息;
[0018]P2P服務(wù)器根據(jù)登錄請(qǐng)求消息判斷呼叫列表中是否存在第三終端的注冊(cè)信息;
[0019]若存在,則P2P服務(wù)器在呼叫列表中將第三終端設(shè)置為登錄在線的狀態(tài);
[0020]若不存在,則P2P服務(wù)器將第三終端的目標(biāo)信息存儲(chǔ)至呼叫列表,并在呼叫列表中將第三終端設(shè)置為登錄在線的狀態(tài)。
[0021]結(jié)合本發(fā)明實(shí)施例的第一方面的第三種實(shí)施方式,在本發(fā)明實(shí)施例的第一方面的第四種實(shí)施方式中,目標(biāo)信息包括身份標(biāo)識(shí)ID和/或網(wǎng)絡(luò)之間互連的協(xié)議IP地址和/或端
□O
[0022]本發(fā)明第二方面提供一種P2P通信方法,可包括:
[0023]第一終端接收用戶的P2P業(yè)務(wù)請(qǐng)求;
[0024]第一終端根據(jù)P2P業(yè)務(wù)請(qǐng)求向P2P服務(wù)器發(fā)送協(xié)助打洞請(qǐng)求消息,以使得P2P服務(wù)器基于協(xié)助打洞請(qǐng)求消息向第二終端發(fā)送通知打洞請(qǐng)求消息,協(xié)助打洞請(qǐng)求消息包括第二終端的身份標(biāo)識(shí)ID ;
[0025]第一終端接收第二終端基于通知打洞請(qǐng)求消息發(fā)送的開始打洞請(qǐng)求消息,通知打洞請(qǐng)求消息包括第一終端的相關(guān)信息;
[0026]第一終端基于開始打洞請(qǐng)求消息進(jìn)行打洞,并向第二終端發(fā)送開始打洞響應(yīng)消息;
[0027]第一終端接收第二終端基于開始打洞響應(yīng)消息發(fā)送的開始業(yè)務(wù)請(qǐng)求消息;
[0028]第一終端基于開始業(yè)務(wù)請(qǐng)求消息向第二終端發(fā)送開始業(yè)務(wù)響應(yīng)消息,并與第二終端進(jìn)行P2P通信。
[0029]結(jié)合本發(fā)明實(shí)施例的第二方面,在本發(fā)明實(shí)施例的第二方面的第一種實(shí)施方式中,相關(guān)信息包括網(wǎng)絡(luò)之間互連的協(xié)議IP地址和/或端口。
[0030]結(jié)合本發(fā)明實(shí)施例的第二方面,或本發(fā)明實(shí)施例的第二方面的第一種實(shí)施方式,在本發(fā)明實(shí)施例的第二種實(shí)施方式中,第一終端與第二終端進(jìn)行P2P通信對(duì)應(yīng)的通信協(xié)議為P2P打洞穿透NAT的通信協(xié)議。
[0031]本發(fā)明實(shí)施例第三方面提供一種P2P服務(wù)器,可包括:
[0032]第一接收模塊,用于接收第一終端發(fā)送的協(xié)助打洞請(qǐng)求消息,協(xié)助打洞請(qǐng)求消息包括第二終端的身份標(biāo)識(shí)ID ;
[0033]第一查詢模塊,用于根據(jù)協(xié)助打洞請(qǐng)求消息查詢本地保存的呼叫列表中是否存在第二終端登錄在線的狀態(tài)信息標(biāo)記;
[0034]發(fā)送模塊,用于當(dāng)呼叫列表中存在第二終端登錄在線的狀態(tài)信息標(biāo)記時(shí),則向第二終端發(fā)送通知打洞請(qǐng)求消息,以使得第二終端基于通知打洞請(qǐng)求消息向P2P服務(wù)器發(fā)送通知打洞響應(yīng)消息,并向第一終端發(fā)送開始打洞請(qǐng)求消息,以指示第一終端進(jìn)行打洞,通知打洞請(qǐng)求消息包括第一終端的相關(guān)信息。
[0035]結(jié)合本發(fā)明實(shí)施例的第三方面,在本發(fā)明實(shí)施例的第三方面的第一種實(shí)施方式中,P2P服務(wù)器還包括:
[0036]獲取模塊,用于獲取協(xié)助打洞請(qǐng)求消息中第二終端的ID;
[0037]第二查詢模塊,用于根據(jù)獲取模塊獲取的ID查詢呼叫列表中是否存在第二終端的注冊(cè)信息;
[0038]觸發(fā)模塊,用于當(dāng)呼叫列表中存在第二終端的注冊(cè)信息時(shí),則觸發(fā)第一查詢模塊根據(jù)協(xié)助打洞請(qǐng)求消息查詢本地保存的呼叫列表中是否存在第二終端登錄在線的狀態(tài)信J 窗、T 己 O
[0039]結(jié)合本發(fā)明實(shí)施例的第三方面,或本發(fā)明實(shí)施例的第三方面的第一種實(shí)施方式,在本發(fā)明實(shí)施例的第三方面的第二種實(shí)施方式中,P2P服務(wù)器還包括:
[0040]第二接收模塊,