本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及信息傳輸領(lǐng)域,尤其涉及信息傳輸方法、客戶端及服務(wù)器。
背景技術(shù):
客戶端在接收服務(wù)器(例如云計(jì)算平臺(tái)中的云服務(wù)器)推送的信息之前,需要預(yù)先在客戶端與服務(wù)器之間建立通信連接來(lái)接收服務(wù)器推送的信息。在已知的技術(shù)中,常用的建立上述通信連接的方式包括套接字SOCKET以及超文本傳輸協(xié)議HTTP長(zhǎng)連接兩種方式。其中,當(dāng)采用套接字SOCKET方式建立通信連接時(shí),每一個(gè)創(chuàng)建的套接字SOCKET對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)端口,由于TCP/IP協(xié)議中規(guī)定了網(wǎng)絡(luò)端口數(shù)量上限即65535個(gè),因此,可創(chuàng)建的套接字SOCKET數(shù)量最多為65535個(gè),從而當(dāng)采用套接字SOCKET方式建立通信時(shí),可與服務(wù)器建立的通信連接的數(shù)量受到限制,使得可以同時(shí)接收服務(wù)器推送的信息的客戶端數(shù)量也受到限制。而當(dāng)采用HTTP長(zhǎng)連接建立通信連接時(shí),無(wú)論客戶端與服務(wù)器是否存在需要傳輸?shù)臄?shù)據(jù),客戶端與服務(wù)器均需要維護(hù)該HTTP長(zhǎng)連接,從而造成當(dāng)服務(wù)器不存在需要推送給客戶端的信息時(shí),依然消耗網(wǎng)絡(luò)資源。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┝诵畔鬏敺椒ā⒖蛻舳思胺?wù)器,用于解決上述背景技術(shù)部分存在的技術(shù)問(wèn)題。
第一方面,本申請(qǐng)?zhí)峁┝艘环N信息傳輸方法,該方法包括:每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息;接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息,連接指示信息用于指示服務(wù)器是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息;當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立與服務(wù) 器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接;通過(guò)超文本傳輸協(xié)議短連接,接收待推送信息。
在某些實(shí)施方式中,當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接包括:當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立待推送信息接收線程;通過(guò)待推送信息接收線程,建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。
在某些實(shí)施方式中,每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求包括:建立信息查詢請(qǐng)求發(fā)送線程;通過(guò)信息查詢請(qǐng)求發(fā)送線程,每間隔預(yù)設(shè)時(shí)間段建立與服務(wù)器之間的用于發(fā)送信息查詢請(qǐng)求的超文本傳輸協(xié)議短連接,以及通過(guò)超文本傳輸協(xié)議短連接向服務(wù)器發(fā)送信息查詢請(qǐng)求。
在某些實(shí)施方式中,在每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求之后,還包括:將信息查詢請(qǐng)求發(fā)送線程設(shè)置為休眠狀態(tài)。
在某些實(shí)施方式中,連接指示信息包括待推送信息的數(shù)量。
第二方面,本申請(qǐng)?zhí)峁┝艘环N信息傳輸方法,該方法包括:接收客戶端每間隔預(yù)設(shè)時(shí)間段發(fā)送的信息查詢請(qǐng)求,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息;判斷是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,根據(jù)判斷結(jié)果生成連接指示信息,連接指示信息用于指示是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,以及將連接指示信息發(fā)送給客戶端;接收客戶端通過(guò)用于傳輸待推送信息的超文本傳輸協(xié)議短連接發(fā)送的待推送信息獲取請(qǐng)求;通過(guò)超文本傳輸協(xié)議短連接,將待推送信息發(fā)送給客戶端。
第三方面,本申請(qǐng)?zhí)峁┝艘环N客戶端,該客戶端包括:發(fā)送單元,用于每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息;指示信息接收單元,用于接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息,連接指示信息用于指示服務(wù)器是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息;連接建立單元,用于當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接;推送信息接收單元,用 于通過(guò)超文本傳輸協(xié)議短連接,接收待推送信息。
在某些實(shí)施方式中,連接建立單元包括:線程建立子單元,用于當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立待推送信息接收線程;短連接建立子單元,用于通過(guò)待推送信息接收線程,建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。
在某些實(shí)施方式中,發(fā)送單元包括:線程建立子單元,用于建立信息查詢請(qǐng)求發(fā)送線程;信息查詢請(qǐng)求發(fā)送子單元,用于通過(guò)信息查詢請(qǐng)求發(fā)送線程,每間隔預(yù)設(shè)時(shí)間段建立與服務(wù)器之間的用于發(fā)送信息查詢請(qǐng)求的超文本傳輸協(xié)議短連接,以及通過(guò)超文本傳輸協(xié)議短連接向服務(wù)器發(fā)送信息查詢請(qǐng)求。
第四方面,本申請(qǐng)?zhí)峁┝艘环N服務(wù)器,該服務(wù)器包括:接收單元,用于接收客戶端每間隔預(yù)設(shè)時(shí)間段發(fā)送的信息查詢請(qǐng)求,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息;判斷單元,用于判斷是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,根據(jù)判斷結(jié)果生成連接指示信息,連接指示信息用于指示是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,以及將連接指示信息發(fā)送給客戶端;信息獲取請(qǐng)求接收單元,用于接收客戶端通過(guò)用于傳輸待推送信息的超文本傳輸協(xié)議短連接發(fā)送的待推送信息獲取請(qǐng)求;發(fā)送單元,用于通過(guò)超文本傳輸協(xié)議短連接,將待推送信息發(fā)送給客戶端。
本申請(qǐng)?zhí)峁┑男畔鬏敺椒ǎㄟ^(guò)每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求,通過(guò)接收到的指示服務(wù)器存在待推送信息的連接指示信息,建立HTTP短連接來(lái)接收服務(wù)器的待推送信息。使得只有在服務(wù)器存在需要推送的信息時(shí),才會(huì)占用網(wǎng)絡(luò)資源接收待推送信息,避免了當(dāng)采用HTTP長(zhǎng)連接方式接收推送數(shù)據(jù)時(shí),無(wú)論是否存在需要推送給客戶端信息,均需占用網(wǎng)絡(luò)資源來(lái)維護(hù)HTTP長(zhǎng)連接而造成的網(wǎng)絡(luò)資源消耗的問(wèn)題,進(jìn)而減輕了網(wǎng)絡(luò)負(fù)載。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1示出了根據(jù)本申請(qǐng)的信息傳輸方法的一個(gè)實(shí)施例的流程圖;
圖2示出了根據(jù)本申請(qǐng)的信息傳輸方法的另一個(gè)實(shí)施例的流程圖;
圖3示出了根據(jù)本申請(qǐng)的信息傳輸方法的又一個(gè)實(shí)施例的流程圖;
圖4示出了根據(jù)本申請(qǐng)的客戶端的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖5示出了根據(jù)本申請(qǐng)的服務(wù)器的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。
請(qǐng)參考圖1,其示出了根據(jù)本申請(qǐng)的信息傳輸方法的一個(gè)實(shí)施例的流程100。該方法包括以下步驟:
步驟101,每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求。
在本實(shí)施例中,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息,該客戶端標(biāo)識(shí)信息可以是預(yù)先在服務(wù)器注冊(cè)的用于指示發(fā)送信息查詢請(qǐng)求的客戶端的信息,例如預(yù)先在服務(wù)器注冊(cè)的客戶端賬號(hào)。在向服務(wù)器發(fā)送信息查詢請(qǐng)求時(shí),可以將信息查詢請(qǐng)求承載在HTTP(Hyper Text Transfer Protocol,超文本傳輸協(xié)議)數(shù)據(jù)包中進(jìn)行傳輸。將信息查詢請(qǐng)求承載在HTTP進(jìn)行傳輸可以采用以下方式進(jìn)行:可以每間隔預(yù)設(shè)時(shí)間段(例如30秒)建立與服務(wù)器之間的HTTP連接,在與服務(wù)器建立HTTP連接之后,構(gòu)建包含信息查詢請(qǐng)求的HTTP數(shù)據(jù)包,然后將承載有信息查詢請(qǐng)求的HTTP數(shù)據(jù)包發(fā)送至服務(wù)器。
步驟102,接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息。
在本實(shí)施例中,在利用建立的HTTP連接將包含客戶端標(biāo)識(shí)信息的信息查詢請(qǐng)求發(fā)送至服務(wù)器后,可以接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息。連接指示信息可以用于表征在服務(wù)器上是否存在有與該客戶端標(biāo)識(shí)信息所對(duì)應(yīng)的待推送信息。連接指示信息可以用一位數(shù)字進(jìn)行表示,例如,用數(shù)字0表示服務(wù)器上不存在客戶端標(biāo)識(shí)信息所對(duì)應(yīng)的待推送信息,用數(shù)字1表示服務(wù)器上存在客戶端標(biāo)識(shí)信息所對(duì)應(yīng)的待推送信息。在接收連接指示信息之后,可以關(guān)閉建立的用于向服務(wù)器發(fā)送信息查詢請(qǐng)求的HTTP連接。
步驟103,當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。
在本實(shí)施例中,當(dāng)接收到連接指示信息之后,可以根據(jù)連接指示信息確定服務(wù)器是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息。以連接指示信息用數(shù)字進(jìn)行表示為例,當(dāng)連接指示信息為數(shù)字1時(shí),則可以確定服務(wù)器上存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,當(dāng)連接指示信息為數(shù)字0時(shí),則可以確定服務(wù)器上不存在與客戶端標(biāo)識(shí)信息所對(duì)應(yīng)的待推送信息。在確定出服務(wù)器存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息之后,可以建立與服務(wù)器的通信連接來(lái)接收服務(wù)器推送的信息。該通信連接的類型可以為HTTP短連接??梢酝ㄟ^(guò)以下方式建立與服務(wù)器之間的HTTP短連接:向服務(wù)器發(fā)送HTTP連接建立請(qǐng)求,其中,HTTP連接建立請(qǐng)求中包括用于指示連接類型為短連接的字段;服務(wù)器接收HTTP連接建立請(qǐng)求,確定連接類型為短連接,創(chuàng)建HTTP短連接,相應(yīng)地,生成該HTTP短連接對(duì)應(yīng)的連接標(biāo)識(shí),并將連接標(biāo)識(shí)發(fā)送至客戶端標(biāo)識(shí)對(duì)應(yīng)的客戶端。
步驟104,通過(guò)超文本傳輸協(xié)議短連接,接收待推送信息。
在建立與服務(wù)器之間的HTTP短連接之后,可以利用該HTTP短連接來(lái)接收服務(wù)器推送的信息。利用HTTP短連接接收服務(wù)器推送的信息的工作原理如下:客戶端向服務(wù)器發(fā)送信息獲取請(qǐng)求,服務(wù)器向客戶端返回推送信息,從而完成一次信息交互,在完成一次信息交互之后,客戶端與服務(wù)器同時(shí)自動(dòng)關(guān)閉該HTTP短連接,例如刪除用于指示該HTTP短連接的連接標(biāo)識(shí)。這樣,通過(guò)建立HTTP短連接接收 服務(wù)器推送的信息之后,自動(dòng)關(guān)閉HTTP連接。
本申請(qǐng)?zhí)峁┑男畔鬏敺椒?,通過(guò)每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求,通過(guò)接收到的指示服務(wù)器存在待推送信息的連接指示信息,建立HTTP短連接來(lái)接收服務(wù)器的待推送信息。使得只有在服務(wù)器存在需要推送的信息時(shí),才會(huì)占用網(wǎng)絡(luò)資源接收待推送信息,避免了當(dāng)采用HTTP長(zhǎng)連接方式接收推送數(shù)據(jù)時(shí),無(wú)論是否存在需要推送給客戶端信息,均需占用網(wǎng)絡(luò)資源來(lái)維護(hù)HTTP長(zhǎng)連接而造成的網(wǎng)絡(luò)資源消耗的問(wèn)題,進(jìn)而減輕了網(wǎng)絡(luò)負(fù)載。
請(qǐng)參考圖2,其示出了根據(jù)本申請(qǐng)的信息傳輸方法的另一個(gè)實(shí)施例的流程200。
本實(shí)施例的應(yīng)用場(chǎng)景可以為:當(dāng)客戶端需要接收服務(wù)器端(例如云計(jì)算平臺(tái)中的云服務(wù)器)推送的信息時(shí),無(wú)需在客戶端與服務(wù)器端同時(shí)維護(hù)HTTP長(zhǎng)連接,以及客戶端以被動(dòng)接收方式即只能由服務(wù)器端通過(guò)HTTP長(zhǎng)連接下發(fā)推送信息的方式來(lái)接收服務(wù)器上推送的信息,而是由客戶端每間隔預(yù)設(shè)時(shí)間段主動(dòng)向服務(wù)器端發(fā)起推送信息查詢請(qǐng)求,并且根據(jù)查詢結(jié)果主動(dòng)觸發(fā)相應(yīng)地推送信息獲取操作來(lái)獲取服務(wù)器端的推送信息。該方法包括以下步驟:
步驟201,每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求。
在本實(shí)施例中,可以預(yù)先建立查詢請(qǐng)求發(fā)送線程,利用該查詢請(qǐng)求發(fā)送線程來(lái)向服務(wù)器發(fā)送信息查詢請(qǐng)求。利用該查詢請(qǐng)求發(fā)送線程來(lái)向服務(wù)器發(fā)送信息查詢請(qǐng)求可以采用以下方式進(jìn)行:首先在查詢請(qǐng)求發(fā)送線程中,建立與服務(wù)器之間的HTTP短連接,相應(yīng)地,構(gòu)建包含信息查詢請(qǐng)求的HTTP數(shù)據(jù)包,然后利用該HTTP短連接將承載有信息查詢請(qǐng)求的HTTP數(shù)據(jù)包發(fā)送至服務(wù)器。
在本實(shí)施例的一些可選地實(shí)現(xiàn)方式中,在每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求之后,還包括:將信息查詢請(qǐng)求發(fā)送線程設(shè)置為休眠狀態(tài)。可以通過(guò)調(diào)用操作系統(tǒng)提供的與線程操作相關(guān)的系統(tǒng)函數(shù)來(lái)將線程設(shè)置為休眠狀態(tài)。針對(duì)線程的相關(guān)操作(例如休眠操作)根據(jù)線程所處的操作系統(tǒng)而確定,不同的操作系統(tǒng)(例如Windows、Linux)提供不同的線程操作。以Linux操作系統(tǒng)為例,將信息查詢請(qǐng) 求發(fā)送線程設(shè)置為休眠狀態(tài)的方式可以為:在信息查詢請(qǐng)求發(fā)送線程中,采用HTTP短連接發(fā)送信息查詢請(qǐng)求之后,可以調(diào)用Linux操作系統(tǒng)提供的與線程休眠操作相關(guān)的系統(tǒng)函數(shù)(例如Sleep函數(shù)),使查詢請(qǐng)求發(fā)送線程暫停運(yùn)行,即處于休眠狀態(tài)。其中,Sleep函數(shù)中包含用于指示休眠時(shí)間的時(shí)間參數(shù),可以將間隔的時(shí)間段(例如30秒)作為指示休眠時(shí)間的時(shí)間參數(shù)。這樣信息查詢請(qǐng)求發(fā)送線程在休眠間隔的時(shí)間段之后,可以由休眠狀態(tài)轉(zhuǎn)換為運(yùn)行狀態(tài),從而可以繼續(xù)發(fā)送信息查詢請(qǐng)求。
步驟202,接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息。
在本實(shí)施例中,連接指示信息包括服務(wù)器上與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息的數(shù)量。在接收到連接指示信息之后,可以根據(jù)待推送信息的數(shù)量來(lái)判斷服務(wù)器上是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息。例如,當(dāng)連接指示信息中的用于表征與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息的數(shù)量的字段為零值時(shí),則確定服務(wù)器上不存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,當(dāng)連接指示信息中的用于表征與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息的數(shù)量的字段不為零值時(shí),則確定服務(wù)器上存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息。
步驟203,當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立待推送信息接收線程;通過(guò)待推送信息接收線程,建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。
在本實(shí)施例中,在通過(guò)連接指示信息中的待推送信息的數(shù)量確定服務(wù)器上存在待推送信息時(shí),可以建立待推送信息接收線程用來(lái)接收服務(wù)器上的待推送信息。在建立待推送信息接收線程之后,可以在建立待推送信息接收線程中,建立與服務(wù)器之間的HTTP短連接,在與服務(wù)器建立HTTP短連接之后,在利用該HTTP短連接完成一次信息交互之后,例如客戶端發(fā)送向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器根據(jù)請(qǐng)求返回信息之后,該HTTP短連接在客戶端與服務(wù)器兩端同時(shí)自動(dòng)關(guān)閉。
在本實(shí)施例中,由于用于接收服務(wù)器上待推送信息的待推送信息接收線程與用于向服務(wù)器發(fā)送信息查詢請(qǐng)求的查詢請(qǐng)求發(fā)送線程為兩 個(gè)獨(dú)立運(yùn)行的線程,相應(yīng)地,接收服務(wù)器上待推送信息的操作與向服務(wù)器發(fā)送信息查詢請(qǐng)求的操作可以同時(shí)進(jìn)行。通過(guò)采用兩個(gè)相互獨(dú)立的線程分別進(jìn)行待推送信息的接收操作和信息查詢請(qǐng)求的發(fā)送操作,使得當(dāng)接收服務(wù)器待推送信息的操作的時(shí)間較長(zhǎng)時(shí),無(wú)需等待接收服務(wù)器待推送信息的操作結(jié)束,可以在接收服務(wù)器待推送信息的操作的同時(shí)向服務(wù)器端發(fā)送信息查詢請(qǐng)求,從而可以及時(shí)接收服務(wù)器上的待推送信息。步驟204,通過(guò)超文本傳輸協(xié)議短連接,接收待推送信息。
在本實(shí)施例中,可以利用在待推送信息接收線程中建立的HTTP短連接來(lái)接收服務(wù)器上的待推送信息。在進(jìn)行一次數(shù)據(jù)傳輸之后,即客戶端向服務(wù)器發(fā)送請(qǐng)求以及服務(wù)器根據(jù)該請(qǐng)求返回信息之后,HTTP短連接將自動(dòng)關(guān)閉。在HTTP短連接自動(dòng)關(guān)閉之后,可以將待推送信息接收線程設(shè)置為停止運(yùn)行狀態(tài)。可以利用操作系統(tǒng)提供的與線程操作相關(guān)的系統(tǒng)函數(shù)來(lái)使推送信息接收線程停止運(yùn)行。線程可進(jìn)行的操作(例如休眠操作)根據(jù)線程所處的操作系統(tǒng)而確定,不同的操作系統(tǒng)(例如Windows、Linux)對(duì)應(yīng)不同的線程的操作。以Linux操作系統(tǒng)為例,可以在待推送信息接收線程檢測(cè)到用于用來(lái)接收服務(wù)器上的待推送信息HTTP短連接自動(dòng)關(guān)閉之后,通過(guò)調(diào)用Linux操作系統(tǒng)提供的與停止運(yùn)行線程相關(guān)的系統(tǒng)函數(shù)(例如Kill函數(shù))來(lái)使得待推送信息接收線程停止運(yùn)行。
請(qǐng)參考圖3,其示出了根據(jù)本申請(qǐng)的信息傳輸方法的又一個(gè)實(shí)施例的流程300。
步驟301,接收客戶端每間隔預(yù)設(shè)時(shí)間段發(fā)送的信息查詢請(qǐng)求。
在本實(shí)施例中,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息(例如預(yù)先在服務(wù)器上注冊(cè)的客戶端賬號(hào))。在接收到客戶端每間隔預(yù)設(shè)時(shí)間段(例如30秒)發(fā)送的信息查詢請(qǐng)求之后,可以根據(jù)信息查詢請(qǐng)求中的客戶端標(biāo)識(shí)信息,確定發(fā)送該信息查詢請(qǐng)求的客戶端。
步驟302,判斷是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,根據(jù)判斷結(jié)果生成連接指示信息。
在本實(shí)施例中,連接指示信息可以用于表征是否存在與客戶端標(biāo)識(shí)對(duì)應(yīng)的待推送信息。可以通過(guò)判斷是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng) 的待推送信息,根據(jù)判斷結(jié)果來(lái)生成連接指示信息。例如,當(dāng)判斷出存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息時(shí),可以用與客戶端標(biāo)識(shí)對(duì)應(yīng)的待推送信息的數(shù)量來(lái)表示連接指示信息。當(dāng)判斷出不存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息時(shí),可以用零值進(jìn)行表示連接指示信息。連接指示信息可以承載在HTTP數(shù)據(jù)包中進(jìn)行傳輸,可以在基于連接指示信息構(gòu)造HTTP數(shù)據(jù)包之后,將承載有連接指示信息的HTTP數(shù)據(jù)包發(fā)送至客戶端。
步驟303,接收客戶端通過(guò)用于傳輸待推送信息的超文本傳輸協(xié)議短連接發(fā)送的待推送信息獲取請(qǐng)求。
在本實(shí)施例中,當(dāng)向客戶端發(fā)送的包含有待發(fā)送信息數(shù)量的連接指示信息指示服務(wù)器上存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息時(shí),會(huì)觸發(fā)客戶端進(jìn)行接收推送信息的相關(guān)操作。例如觸發(fā)客戶端建立用于傳輸待發(fā)送信息的HTTP短連接??梢岳迷摻⒌腍TTP短連接來(lái)接收客戶端發(fā)送的待推送信息獲取請(qǐng)求。
步驟304,通過(guò)超文本傳輸協(xié)議短連接,將待推送信息發(fā)送給客戶端。
在本實(shí)施例中,在通過(guò)建立的客戶端與服務(wù)器之間的用于傳輸待推送信息的HTTP短連接,接收到客戶端發(fā)送的待推送信息獲取請(qǐng)求之后,可以利用該HTTP短連接,將待推送信息發(fā)送至客戶端。
請(qǐng)參考圖4,其示出了根據(jù)本申請(qǐng)的客戶端的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
如圖4所示,客戶端400包括:發(fā)送單元401,指示信息接收單元402,連接建立單元403,推送信息接收單元404。其中,發(fā)送單元401用于每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求。指示信息接收單元402用于接收服務(wù)器返回的與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的連接指示信息,連接指示信息用于指示服務(wù)器是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息。連接建立單元403用于當(dāng)連接指示信息指示服務(wù)器存在待推送信息時(shí),建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。推送信息接收單元404用于通過(guò)超文本傳輸協(xié)議短連接,接收待推送信息。
在本實(shí)施例的一些可選地實(shí)現(xiàn)方式中,連接建立單元403包括:線程建立子單元(未示出)、短連接建立子單元(未示出)。線程建立子單元用于當(dāng)連接指示信息指示服務(wù)器存在所推送信息時(shí),建立待推送信息接收線程;短連接建立子單元用于通過(guò)待推送信息接收線程,建立與服務(wù)器之間的用于傳輸待推送信息的超文本傳輸協(xié)議短連接。
在本實(shí)施例的一些可選地實(shí)現(xiàn)方式中,發(fā)送單元401包括:線程建立子單元(未示出)、信息查詢請(qǐng)求發(fā)送子單元(未示出)。線程建立子單元用于建立信息查詢請(qǐng)求發(fā)送線程;信息查詢請(qǐng)求發(fā)送子單元用于通過(guò)信息查詢請(qǐng)求發(fā)送線程,每間隔預(yù)設(shè)時(shí)間段建立與服務(wù)器之間的用于發(fā)送信息查詢請(qǐng)求的超文本傳輸協(xié)議短連接,以及通過(guò)超文本傳輸協(xié)議短連接向服務(wù)器發(fā)送信息查詢請(qǐng)求。
請(qǐng)參考圖5,其示出了根據(jù)本申請(qǐng)的服務(wù)器的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
如圖5所示,服務(wù)器500包括:接收單元501,判斷單元502,信息獲取請(qǐng)求接收單元503,發(fā)送單元504。其中,接收單元501用于接收客戶端每間隔預(yù)設(shè)時(shí)間段發(fā)送的信息查詢請(qǐng)求,信息查詢請(qǐng)求包括客戶端標(biāo)識(shí)信息。判斷單元502用于判斷是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,根據(jù)判斷結(jié)果生成連接指示信息,連接指示信息用于指示是否存在與客戶端標(biāo)識(shí)信息對(duì)應(yīng)的待推送信息,以及將連接指示信息發(fā)送給客戶端。信息獲取請(qǐng)求接收單元503用于接收客戶端通過(guò)用于傳輸待推送信息的超文本傳輸協(xié)議短連接發(fā)送的待推送信息獲取請(qǐng)求。發(fā)送單元504用于通過(guò)超文本傳輸協(xié)議短連接,將待推送信息發(fā)送給客戶端。
描述于本申請(qǐng)實(shí)施例中所涉及到的模塊可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的模塊也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括發(fā)送單元,指示信息接收單元,連接建立單元,推送信息接收單元。其中,這些模塊的名稱在某種情況下并不構(gòu)成對(duì)該模塊本身的限定,例如,發(fā)送單元還可以被描述為“用于每間隔預(yù)設(shè)時(shí)間段向服務(wù)器發(fā)送信息查詢請(qǐng)求”。
作為另一方面,本申請(qǐng)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì) 算機(jī)可讀存儲(chǔ)介質(zhì)可以是上述實(shí)施例中所述裝置中所包含的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者一個(gè)以上程序,所述程序被一個(gè)或者一個(gè)以上的處理器用來(lái)執(zhí)行描述于本申請(qǐng)的信息傳輸方法。
以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。