本申請(qǐng)涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,更具體地說,涉及一種數(shù)據(jù)處理方法、裝置及系統(tǒng)。
背景技術(shù):
伴隨智能終端的普及,越來越多的游戲軟件應(yīng)用于智能終端上。用戶可以在智能終端上打開游戲軟件,并在智能終端聯(lián)網(wǎng)狀態(tài)下進(jìn)行游戲。
在用戶實(shí)際游戲過程中,經(jīng)常會(huì)出現(xiàn)“弱網(wǎng)絡(luò)”情況,也即終端的網(wǎng)絡(luò)狀態(tài)不穩(wěn)定,容易造成游戲客戶端與游戲服務(wù)器之間傳輸?shù)臄?shù)據(jù)包丟失的問題。丟包可以分為兩種情況,一種是游戲客戶端向游戲服務(wù)器發(fā)送的消息包丟失,也即游戲服務(wù)器未收到游戲客戶端發(fā)送的消息包;另一種是游戲服務(wù)器收到游戲客戶端發(fā)送的消息包后進(jìn)行業(yè)務(wù)處理生成響應(yīng)包,在將響應(yīng)包發(fā)送給游戲客戶端的過程出現(xiàn)異常,造成游戲客戶端未接收到響應(yīng)包。
現(xiàn)有處理方式是,游戲客戶端在發(fā)送消息包后的一定時(shí)間內(nèi)未收到響應(yīng)包,則游戲客戶端將上次發(fā)送的消息包重新進(jìn)行發(fā)送。這種處理方式在出現(xiàn)上述第二種丟包情況時(shí),即首次發(fā)送的消息包被游戲服務(wù)器接收到并進(jìn)行了業(yè)務(wù)處理生成響應(yīng)包,該響應(yīng)包未被游戲客戶端接收到,則當(dāng)游戲客戶端再次發(fā)送消息包且被游戲服務(wù)器接收到時(shí),游戲服務(wù)器會(huì)再次進(jìn)行相同的業(yè)務(wù)處理以生成響應(yīng)包。顯然,針對(duì)一個(gè)消息包游戲服務(wù)器進(jìn)行了兩次相同的業(yè)務(wù)處理,這將會(huì)給用戶帶來負(fù)面影響,降低用戶游戲體驗(yàn)度。
以用戶在游戲中的角色“死亡”后點(diǎn)擊“購買復(fù)活”圖標(biāo)的操作為例,游戲客戶端將“購買復(fù)活”的消息包發(fā)送給游戲服務(wù)器,后者收到后對(duì)用戶賬戶進(jìn)行扣費(fèi)后生成“復(fù)活”指令的響應(yīng)包發(fā)送給游戲客戶端,而后者未收到響應(yīng)包并重新發(fā)送相同的消息包給游戲服務(wù)器,游戲服務(wù)器收到后再次對(duì)用戶賬戶進(jìn)行扣費(fèi)后生成“復(fù)活”指令的響應(yīng)包發(fā)送給游戲客戶端。顯然,對(duì)用戶而言,一次“復(fù)活”卻耗費(fèi)了雙倍的費(fèi)用,降低了用戶的游戲體驗(yàn)度。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)處理方法、裝置及系統(tǒng),用于解決現(xiàn)有游戲數(shù)據(jù)包處理方式在弱網(wǎng)絡(luò)狀態(tài)下容易出現(xiàn)游戲服務(wù)器針對(duì)同一消息包進(jìn)行兩次相同的業(yè)務(wù)處理,從而給用戶帶來負(fù)面影響,降低用戶游戲體驗(yàn)度的問題。
為了實(shí)現(xiàn)上述目的,現(xiàn)提出的方案如下:
一種數(shù)據(jù)處理方法,應(yīng)用于游戲服務(wù)器,該方法包括:
接收游戲客戶端發(fā)送的重試的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;
將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
一種數(shù)據(jù)處理方法,應(yīng)用于游戲客戶端,該方法包括:
確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
將確定的同步包再次發(fā)送至游戲服務(wù)器;
接收所述游戲服務(wù)器反饋的響應(yīng)包,所述響應(yīng)包為所述游戲服務(wù)器收到所述同步包后,在歷史緩存的響應(yīng)包中查詢到的與所述同步包對(duì)應(yīng)的響應(yīng)包,在歷史緩存中查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包。
一種數(shù)據(jù)處理裝置,應(yīng)用于游戲服務(wù)器,該裝置包括:
同步包接收單元,用于接收游戲客戶端發(fā)送的消息包,所述消息包攜帶有包屬性,所述包屬性用于表明所述消息包是否為重試包;
響應(yīng)包查詢單元,用于查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;
響應(yīng)包發(fā)送單元,用于將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
一種數(shù)據(jù)處理裝置,應(yīng)用于游戲客戶端,該裝置包括:
同步包確定單元,用于確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
同步包發(fā)送單元,用于將確定的同步包再次發(fā)送至游戲服務(wù)器;
響應(yīng)包接收單元,用于接收所述游戲服務(wù)器反饋的響應(yīng)包,所述響應(yīng)包為所述游戲服務(wù)器收到所述同步包后,在歷史緩存的響應(yīng)包中查詢到的與所述同步包對(duì)應(yīng)的響應(yīng)包,在歷史緩存中查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包。
一種數(shù)據(jù)處理系統(tǒng),包括游戲客戶端和游戲服務(wù)器,其中:
所述游戲客戶端確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包,將確定的同步包再次發(fā)送至游戲服務(wù)器,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
所述游戲服務(wù)器接收游戲客戶端發(fā)送的同步包;查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
從上述的技術(shù)方案可以看出,本申請(qǐng)實(shí)施例提供的應(yīng)用于游戲服務(wù)器的數(shù)據(jù)處理方法,游戲服務(wù)器接收游戲客戶端發(fā)送的重試的同步包,該同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求,進(jìn)而,查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包,最后,將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。本申請(qǐng)中游戲服務(wù)器在確認(rèn)收到的游戲客戶端發(fā)送的同步包為重試的同步包時(shí),在緩存中查詢與所述同步包對(duì)應(yīng)的響應(yīng)包,如果查詢到,則說明游戲服務(wù)器之前收到過該同步包并進(jìn)行了游戲數(shù)據(jù)的更新,因此直接將查找到的響應(yīng)包發(fā)送給游戲客戶端,而不會(huì)再次進(jìn)行游戲數(shù)據(jù)的更新,保證了游戲服務(wù)器針對(duì)同一同步包不會(huì)重復(fù)進(jìn)行游戲數(shù)據(jù)更新,也即不會(huì)給用戶帶來負(fù)面影響,保證用戶游戲體驗(yàn)度。
附圖說明
為了更清楚地說明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面 描述中的附圖僅僅是本申請(qǐng)的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的一種數(shù)據(jù)處理方法流程圖;
圖2為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的另一種數(shù)據(jù)處理方法流程圖;
圖3為本申請(qǐng)實(shí)施例從游戲客戶端角度公開的一種數(shù)據(jù)處理方法流程圖;
圖4為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的一種數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;
圖5為本申請(qǐng)實(shí)施例從游戲客戶端角度公開的一種數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)實(shí)施例公開的一種游戲服務(wù)器的硬件結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
在介紹本申請(qǐng)方案之前需要說明,游戲網(wǎng)絡(luò)通信的消息包,按照重要程度,可以分為同步包和異步包。其中,對(duì)于丟包后會(huì)影響玩家后續(xù)體驗(yàn)或者導(dǎo)致經(jīng)濟(jì)損失的一類消息包作為同步包,其余的作為異步包。本申請(qǐng)下文均以同步包進(jìn)行說明。
本申請(qǐng)針對(duì)用戶游戲過程,游戲客戶端與游戲服務(wù)器之間的同步包交互過程進(jìn)行了改進(jìn),以使得游戲服務(wù)器針對(duì)同一同步包不會(huì)重復(fù)進(jìn)行游戲數(shù)據(jù)更新,保證了用戶游戲體驗(yàn)度。
接下來,分別從游戲服務(wù)器和游戲客戶端的角度來介紹本申請(qǐng)方案。首先,參見圖1,圖1為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的一種數(shù)據(jù)處理方法流程圖。
如圖1所示,該方法包括:
步驟s100、接收游戲客戶端發(fā)送的重試的同步包;
具體地,針對(duì)游戲客戶端而言,響應(yīng)用戶的某一操作而生成同步包,并向游戲服務(wù)器發(fā)送該同步包。如果在設(shè)定時(shí)間段內(nèi),游戲客戶端未收到游戲服務(wù)器反饋的與所述同步包對(duì)應(yīng)的響應(yīng)包,則游戲客戶端重新將所述同步包發(fā)送至游戲服務(wù)器。
針對(duì)游戲服務(wù)器而言,如果某一時(shí)間收到游戲客戶端發(fā)送的同步包,根據(jù)同步包中的同步請(qǐng)求進(jìn)行了游戲數(shù)據(jù)更新,生成響應(yīng)包,并向游戲客戶端反饋,而該響應(yīng)包未被游戲客戶端接收,因此一定時(shí)間后游戲服務(wù)器再次收到相同數(shù)據(jù)內(nèi)容的同步包,對(duì)于游戲服務(wù)器而言,該同步包即為收到的游戲客戶端發(fā)送的重試的同步包。
可選的,為了表明一個(gè)同步包是否為重試的包,可以在同步包中增加包屬性,包屬性用于記錄該同步包是否為重試的包,。同步包可以看作由包頭部分和數(shù)據(jù)部分組成,數(shù)據(jù)部分?jǐn)y帶的是同步請(qǐng)求數(shù)據(jù),用于供游戲服務(wù)器進(jìn)行游戲數(shù)據(jù)更新,而包頭部分可以包含包屬性。
可選的,可以用“0”來代表同步包為重試的包,用“1”來代表同步包為非重試的包?;蛘撸苯釉谠撟侄沃杏谩爸卦嚢被颉胺侵卦嚢眮肀砻魍桨膶傩?。
步驟s110、查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包;
其中,所查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包。
具體地,由于游戲服務(wù)器已經(jīng)確認(rèn)接收的同步包為重試的同步包,也即游戲服務(wù)器之前曾接收過所述同步包,并根據(jù)所述同步包攜帶的同步請(qǐng)求進(jìn)行了游戲數(shù)據(jù)更新,生成對(duì)應(yīng)的響應(yīng)包。因此,在確定當(dāng)前接收的同步包為重試的同步包時(shí),在歷史緩存的響應(yīng)包中查找與所述同步包對(duì)應(yīng)的響應(yīng)包,而不需要再次根據(jù)同步包攜帶的同步請(qǐng)求進(jìn)行游戲數(shù)據(jù)的更新、生成響應(yīng)包。
步驟s120、將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
具體地,如果在緩存中查找到與所述同步包對(duì)應(yīng)的響應(yīng)包,則意味著游戲服務(wù)器歷史收到過所述同步包,并針對(duì)同步包進(jìn)行了游戲數(shù)據(jù)更新,生成了對(duì)應(yīng)的響應(yīng)包。進(jìn)而,游戲服務(wù)器不需要再次針對(duì)所述同步包進(jìn)行游戲數(shù)據(jù)更新,直接將查找到的響應(yīng)包發(fā)送給游戲客戶端即可。
本申請(qǐng)實(shí)施例提供的應(yīng)用于游戲服務(wù)器的數(shù)據(jù)處理方法,游戲服務(wù)器接收游戲客戶端發(fā)送的重試的同步包,該同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求,進(jìn)而,查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包,最后,將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。本申請(qǐng)中游戲服務(wù)器在確認(rèn)收到的游戲客戶端發(fā)送的同步包為重試的同步包時(shí),在緩存中查詢與所述同步包對(duì)應(yīng)的響應(yīng)包,如果查詢到,則說明游戲服務(wù)器之前收到過該同步包并進(jìn)行了游戲數(shù)據(jù)的更新,因此直接將查找到的響應(yīng)包發(fā)送給游戲客戶端,而不會(huì)再次進(jìn)行游戲數(shù)據(jù)的更新,保證了游戲服務(wù)器針對(duì)同一同步包不會(huì)重復(fù)進(jìn)行游戲數(shù)據(jù)更新,也即不會(huì)給用戶帶來負(fù)面影響,保證用戶游戲體驗(yàn)度。
上述已經(jīng)說明,同步包攜帶的同步請(qǐng)求用于供游戲服務(wù)器進(jìn)行游戲數(shù)據(jù)更新,該游戲數(shù)據(jù)可以包括游戲結(jié)算數(shù)據(jù)和/或虛擬貨幣交易數(shù)據(jù)。
接下來,通過一個(gè)具體實(shí)例了介紹本申請(qǐng)方案。
以一款角色扮演游戲arpg手游的pve關(guān)卡戰(zhàn)斗場(chǎng)景(pve關(guān)卡戰(zhàn)斗場(chǎng)景即為玩家vs環(huán)境的戰(zhàn)斗場(chǎng)景)為例:
關(guān)卡戰(zhàn)斗玩法中,游戲客戶端與游戲服務(wù)器間有網(wǎng)絡(luò)通信交互的有以下三個(gè)操作:
1、關(guān)卡戰(zhàn)斗開始
2、關(guān)卡中途玩家復(fù)活,該操作涉及到玩家虛擬貨幣消費(fèi)
3、關(guān)卡結(jié)束時(shí)進(jìn)行結(jié)算
單場(chǎng)關(guān)卡戰(zhàn)斗持續(xù)時(shí)間大約在3-5分鐘,除了上述三個(gè)時(shí)間點(diǎn)外,中間的戰(zhàn)斗過程不需要游戲客戶端與游戲服務(wù)器進(jìn)行網(wǎng)絡(luò)交互。
本實(shí)施例中以關(guān)卡中途玩家復(fù)活為例說明:
玩家在游戲中的角色“死亡”后點(diǎn)擊“購買復(fù)活”圖標(biāo),游戲客戶端響應(yīng)用戶的這一操作,生成同步包,同步包中攜帶有“購買復(fù)活”指令,并將同步包發(fā)送給游戲服務(wù)器。
游戲服務(wù)器收到同步包后對(duì)玩家賬戶進(jìn)行虛擬貨幣扣費(fèi),然后生成響應(yīng)包,該響應(yīng)包攜帶有“復(fù)活”指令,以供游戲客戶端收到該響應(yīng)包后“復(fù)活” 玩家角色。游戲服務(wù)器將生成的響應(yīng)包發(fā)送給游戲客戶端,同時(shí)將該響應(yīng)包緩存。而由于通信故障,該響應(yīng)包未被游戲客戶端成功接收。
游戲客戶端在設(shè)定的時(shí)間段內(nèi)未收到針對(duì)同步包的響應(yīng)包,因此將所述同步包重新發(fā)送至游戲服務(wù)器。
按照現(xiàn)有技術(shù)的處理邏輯,游戲服務(wù)器收到重試的同步包后將其作為一個(gè)全新的同步進(jìn)行業(yè)務(wù)處理,也即重復(fù)上述“虛擬貨幣扣費(fèi),生成響應(yīng)包,向游戲客戶端發(fā)送響應(yīng)包”步驟。顯然,針對(duì)玩家而言,其角色“復(fù)活”了一次,而進(jìn)行了兩次扣費(fèi),對(duì)玩家造成了經(jīng)濟(jì)損失。
而按照本申請(qǐng)的處理邏輯,游戲服務(wù)器收到重試的同步包后,首先在緩存中查找與所述同步包對(duì)應(yīng)的響應(yīng)包,進(jìn)而查找到歷史緩存的與所述同步包對(duì)應(yīng)的響應(yīng)包,然后直接將查找到的響應(yīng)包發(fā)送給游戲客戶端,而不再針對(duì)收到的重試的同步包進(jìn)行“虛擬貨幣扣費(fèi),生成響應(yīng)包”的步驟。
游戲客戶端收到響應(yīng)包,復(fù)活玩家用戶在游戲中的角色。
對(duì)比本申請(qǐng)方案與現(xiàn)有技術(shù)可知,本申請(qǐng)的方案當(dāng)由于網(wǎng)絡(luò)故障而造成游戲服務(wù)器生成的響應(yīng)包未被游戲客戶端接收到時(shí),針對(duì)游戲客戶端發(fā)送的重試的同步包,不再進(jìn)行“虛擬貨幣扣費(fèi),生成響應(yīng)包”的操作,而是直接查詢歷史緩存的與所述同步包對(duì)應(yīng)的響應(yīng)包,將其直接發(fā)送給游戲客戶端,避免了對(duì)玩家經(jīng)濟(jì)造成損失。
同理針對(duì)“關(guān)卡戰(zhàn)斗開始”與“關(guān)卡結(jié)束時(shí)結(jié)算”兩種場(chǎng)景。
進(jìn)一步需要說明的是,上述為了使游戲服務(wù)器能夠識(shí)別一個(gè)同步包是否為重試的包,游戲客戶端可以在同步包的包頭中增加包屬性字段,并設(shè)定“0”代表非重試包,“1”代表重試包。這樣,游戲服務(wù)器在收到一個(gè)同步包后,根據(jù)同步包包頭部分的包屬性字段即可確認(rèn)該同步包是否為重試的包。
可以理解的是,在上述實(shí)施例的基礎(chǔ)上,若游戲服務(wù)器在收到游戲客戶端發(fā)送的重試的同步包后,在歷史緩存的響應(yīng)包中未能查找到與所述同步包對(duì)應(yīng)的響應(yīng)包,則意味著游戲服務(wù)器歷史未曾收到過所述同步包,這可能是因?yàn)橛螒蚩蛻舳耸状伟l(fā)送的同步包由于網(wǎng)絡(luò)故障而未被游戲服務(wù)器接收到。針對(duì)這種情況,本實(shí)施例中的游戲服務(wù)器可以根據(jù)所述同步包中攜帶的同步請(qǐng)求,進(jìn)行游戲數(shù)據(jù)更新,進(jìn)而生成對(duì)應(yīng)的響應(yīng)包,然后將生成的響應(yīng)包緩 存并發(fā)送給游戲客戶端。
詳細(xì)參見圖2,圖2為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的另一種數(shù)據(jù)處理方法流程圖。
如圖2所示,該方法包括:
步驟s200、接收游戲客戶端發(fā)送的重試的同步包;
可選的,為了表明一個(gè)同步包是否為重試的包,可以在同步包中增加包屬性,包屬性用于記錄該同步包是否為重試的包,。同步包可以看作由包頭部分和數(shù)據(jù)部分組成,數(shù)據(jù)部分?jǐn)y帶的是同步請(qǐng)求數(shù)據(jù),用于供游戲服務(wù)器進(jìn)行游戲數(shù)據(jù)更新,而包頭部分可以包含包屬性。
可選的,可以用“0”來代表同步包為重試的包,用“1”來代表同步包為非重試的包?;蛘?,直接在該字段中用“重試包”或“非重試包”來表明同步包的屬性。
步驟s210、查詢歷史緩存的響應(yīng)包中是否存在與所述同步包對(duì)應(yīng)的響應(yīng)包,若是,執(zhí)行步驟s220,若否,執(zhí)行步驟s230;
其中,游戲服務(wù)器緩存中的響應(yīng)包為針對(duì)收到的歷史同步包進(jìn)行游戲數(shù)據(jù)更新所生成的與歷史同步包對(duì)應(yīng)的響應(yīng)包。也即,在游戲服務(wù)器本次收到同步包之前,針對(duì)收到的歷史同步包進(jìn)行游戲數(shù)據(jù)更新所生成的響應(yīng)包。
步驟s220、將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端;
具體地,如果在緩存中查找到與所述同步包對(duì)應(yīng)的響應(yīng)包,則意味著游戲服務(wù)器歷史收到所述同步包,并針對(duì)所述同步包進(jìn)行了游戲數(shù)據(jù)更新,生成了對(duì)應(yīng)的響應(yīng)包。進(jìn)而,游戲服務(wù)器不需要再次針對(duì)所述同步包進(jìn)行業(yè)務(wù)處理,直接將查找到的響應(yīng)包發(fā)送給游戲客戶端即可。
步驟s230、根據(jù)所述同步包中攜帶的同步請(qǐng)求,進(jìn)行游戲數(shù)據(jù)更新,生成對(duì)應(yīng)的響應(yīng)包;
具體地,如果在緩存中未查找到與所述同步包對(duì)應(yīng)的響應(yīng)包,則意味著游戲服務(wù)器歷史未收到過所述同步包,則游戲服務(wù)器作為一個(gè)新的同步包來進(jìn)行業(yè)務(wù)處理。
步驟s240、將生成的響應(yīng)包進(jìn)行緩存,并向所述游戲客戶端發(fā)送該生成的響應(yīng)包。
具體地,針對(duì)業(yè)務(wù)處理生成的響應(yīng)包,在向游戲客戶端發(fā)送的同時(shí),還可以將其進(jìn)行緩存,以便后續(xù)使用。
相比于上一實(shí)施例,本實(shí)施例中進(jìn)一步介紹了在確定歷史緩存的響應(yīng)包中不存在與所述同步包對(duì)應(yīng)的響應(yīng)包時(shí)的具體操作方式,也即游戲服務(wù)器按照新的同步包進(jìn)行業(yè)務(wù)處理,生成響應(yīng)包并進(jìn)行緩存。
可選的,上述將生成的響應(yīng)包進(jìn)行緩存的過程,具體可以是:
利用生成的響應(yīng)包覆蓋歷史緩存的響應(yīng)包。
也即,游戲服務(wù)器中僅緩存最近一次生成的響應(yīng)包。一般情況下,用戶在游戲客戶端上點(diǎn)擊某個(gè)圖標(biāo)來發(fā)起請(qǐng)求時(shí),游戲客戶端響應(yīng)用戶請(qǐng)求而生成同步包,并向游戲服務(wù)器發(fā)送。游戲客戶端在等待游戲服務(wù)器的響應(yīng)包的過程中,一般會(huì)將游戲界面鎖定,處于鎖定狀態(tài)的界面不會(huì)響應(yīng)用戶的任何操作,從而保證了游戲客戶端不會(huì)在等待響應(yīng)包的過程再次向游戲服務(wù)器發(fā)送新的同步包。
基于此,游戲服務(wù)器中僅僅需要緩存最近一次生成的響應(yīng)包即可,也只有最近一次生成的響應(yīng)包有可能會(huì)使用到。
再進(jìn)一步的,游戲客戶端向游戲服務(wù)器發(fā)送的同步包中還可以進(jìn)一步攜帶有包標(biāo)識(shí),包標(biāo)識(shí)用于唯一標(biāo)識(shí)一個(gè)同步包,可以看作同步包的“身份證”。同時(shí),游戲服務(wù)器中歷史緩存的響應(yīng)包也標(biāo)記有對(duì)應(yīng)同步包的包標(biāo)識(shí)。則上述查詢歷史緩存的響應(yīng)包中是否存在與所述同步包對(duì)應(yīng)的響應(yīng)包的過程可以是:
根據(jù)所述同步包的包標(biāo)識(shí),在歷史緩存的響應(yīng)包中查詢是否存在與所述包標(biāo)識(shí)對(duì)應(yīng)的響應(yīng)包。
接下來,本申請(qǐng)實(shí)施例從游戲客戶端角度再次對(duì)本申請(qǐng)方案進(jìn)行介紹。
參見圖3,圖3為本申請(qǐng)實(shí)施例從游戲客戶端角度公開的一種數(shù)據(jù)處理方法流程圖。
如圖3所示,該方法包括:
步驟s300、確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包;
其中,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求。
針對(duì)游戲客戶端而言,響應(yīng)用戶的某一操作而生成同步包,并向游戲服務(wù)器發(fā)送該同步包。如果在設(shè)定時(shí)間段內(nèi),游戲客戶端未收到游戲服務(wù)器反饋的與所述同步包對(duì)應(yīng)的響應(yīng)包,則確定需要重新發(fā)送該同步包。
步驟s310、將確定的同步包再次發(fā)送至游戲服務(wù)器;
步驟s320、接收所述游戲服務(wù)器反饋的響應(yīng)包。
具體地,所述響應(yīng)包為所述游戲服務(wù)器收到所述同步包后,在歷史緩存的響應(yīng)包中查詢到的與所述同步包對(duì)應(yīng)的響應(yīng)包,在歷史緩存中查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包。
可選的,為了便于游戲服務(wù)器確定一個(gè)同步包是否為重試的包,游戲客戶端可以在同步包的包頭中增加包屬性,包屬性用于記錄所述同步包是否為重試的包。例如,用“0”代表為重試包,用“1”代表為非重試包。
基于此,上述實(shí)施例在步驟s310之前,進(jìn)一步增加:
對(duì)所述同步包的包屬性進(jìn)行更新,更新后的包屬性表明所述同步包為重試的包。
也即,游戲客戶端首次發(fā)送的同步包中包屬性表明其為非重試的包,而當(dāng)確定需要重新發(fā)送同步包時(shí),首先將其包屬性進(jìn)行更新,更新后的包屬性表明所述同步包為重試的包,進(jìn)而在步驟s310中,將包屬性更新后的同步包發(fā)送給游戲服務(wù)器。
可選的,在上述將確定的同步包再次發(fā)送至游戲服務(wù)器的同時(shí),鎖定游戲客戶端的游戲界面,以屏蔽玩家的游戲操作。從而保證了游戲客戶端不會(huì)在等待響應(yīng)包的過程再次向游戲服務(wù)器發(fā)送新的同步包。
進(jìn)一步,在游戲客戶端接收到游戲服務(wù)器反饋的響應(yīng)包的同時(shí),解除游戲客戶端的游戲界面的鎖定。解除鎖定后,游戲客戶端可以再次接收用戶的游戲操作。
可選的,游戲客戶端發(fā)送的同步包還可以進(jìn)一步攜帶有包標(biāo)識(shí),包標(biāo)識(shí)用于唯一標(biāo)識(shí)一個(gè)同步包,可以看作同步包的“身份證”。所述包標(biāo)識(shí)用于供游戲服務(wù)器緩存針對(duì)所述同步包生成的響應(yīng)包時(shí),將所述響應(yīng)包與所述包標(biāo)識(shí)關(guān)聯(lián)存儲(chǔ)。
可選的,上述已經(jīng)介紹了游戲客戶端設(shè)置有超時(shí)重試時(shí)間,也即游戲客戶端在發(fā)送同步包后,在超時(shí)重試時(shí)間到達(dá)時(shí)仍未收到游戲服務(wù)器反饋的響應(yīng)包,則會(huì)重新發(fā)送同步包。在此基礎(chǔ)上,本申請(qǐng)對(duì)游戲服務(wù)器業(yè)務(wù)處理的時(shí)間也進(jìn)行了超時(shí)設(shè)定,并且游戲服務(wù)器業(yè)務(wù)處理的超時(shí)時(shí)間必須小于游戲客戶端的超時(shí)重試時(shí)間,從而保證游戲客戶端發(fā)送重試包時(shí)游戲服務(wù)器已經(jīng)執(zhí)行完業(yè)務(wù)處理過程,不會(huì)出現(xiàn)由于游戲服務(wù)器處于業(yè)務(wù)處理過程,而導(dǎo)致游戲客戶端未收到響應(yīng)包,進(jìn)而向游戲服務(wù)器發(fā)送重試包的情況。
在上述基礎(chǔ)上,本申請(qǐng)實(shí)施例從游戲客戶端角度介紹了一種斷網(wǎng)重連的機(jī)制。
在介紹本申請(qǐng)的斷網(wǎng)重連機(jī)制之前,首先對(duì)現(xiàn)有技術(shù)進(jìn)行簡(jiǎn)單介紹。
現(xiàn)有技術(shù)中,玩家在游戲客戶端進(jìn)行游戲操作,某一時(shí)刻游戲客戶端檢測(cè)到網(wǎng)絡(luò)斷開,則游戲客戶端即刻鎖定游戲界面,終止玩家的游戲操作,同時(shí)提示玩家網(wǎng)絡(luò)斷開,是否進(jìn)行重連。
而針對(duì)具體游戲而言,一般僅在“進(jìn)入關(guān)卡”、“死亡復(fù)活”和“關(guān)卡結(jié)束結(jié)算”這三個(gè)環(huán)節(jié)需要游戲客戶端與游戲服務(wù)器進(jìn)行通信,其余大部分時(shí)間游戲客戶端不需要和游戲服務(wù)器進(jìn)行通信。因此,現(xiàn)有的斷網(wǎng)重連機(jī)制,在終端斷網(wǎng)時(shí)有可能玩家的游戲操作不需要游戲客戶端與游戲服務(wù)器進(jìn)行通信,此時(shí)終止玩家操作將會(huì)影響玩家游戲體驗(yàn)。
為此,本申請(qǐng)?zhí)峁┝艘环N新的斷網(wǎng)重連機(jī)制,如下所示:
僅在確定需要針對(duì)玩家當(dāng)前的游戲操作向游戲服務(wù)器發(fā)送同步包,且游戲客戶端處于斷網(wǎng)狀態(tài)時(shí),重新連接網(wǎng)絡(luò);
在確定設(shè)定重連次數(shù)閾值內(nèi)成功連接網(wǎng)絡(luò)時(shí),向所述游戲服務(wù)器發(fā)送同步包;
在確定設(shè)定重連次數(shù)閾值內(nèi)未成功連接網(wǎng)絡(luò)時(shí),提示用戶網(wǎng)絡(luò)斷開。
具體實(shí)施時(shí),玩家游戲過程中,游戲客戶端持續(xù)對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行檢測(cè),當(dāng)某一時(shí)刻檢測(cè)到網(wǎng)絡(luò)鏈接斷開,則設(shè)置斷開標(biāo)志,同時(shí)并不終止玩家的游戲操作,也即玩家此時(shí)并不知道網(wǎng)絡(luò)鏈接斷開,仍舊繼續(xù)游戲。當(dāng)玩家某個(gè)游戲操作觸發(fā)游戲客戶端向游戲服務(wù)器發(fā)送同步包時(shí),游戲客戶端查詢存在網(wǎng)絡(luò)鏈接斷開標(biāo)志,進(jìn)而自動(dòng)重新連接網(wǎng)絡(luò)。游戲客戶端設(shè)定了重連次數(shù)閾 值,在閾值內(nèi)如果重連成功,則直接將同步包發(fā)送給游戲服務(wù)器;在閾值內(nèi)如果未重連成功,則可以提示用戶網(wǎng)絡(luò)斷開。
顯然,如果是因?yàn)榫W(wǎng)絡(luò)不穩(wěn)定導(dǎo)致的網(wǎng)絡(luò)鏈接斷開,則按照本申請(qǐng)方案,在確定需要針對(duì)玩家當(dāng)前的游戲操作向游戲服務(wù)器發(fā)送同步包時(shí)進(jìn)行網(wǎng)絡(luò)重連,此時(shí)的網(wǎng)絡(luò)可能已經(jīng)穩(wěn)定了,重連一次即可成功,進(jìn)而直接發(fā)送同步包。整個(gè)“斷網(wǎng)-重連”的過程對(duì)于用戶而言是透明的,用戶感受不到網(wǎng)絡(luò)出現(xiàn)過故障,能夠更好的享受游戲過程,提高了玩家的游戲體驗(yàn)度。
可以理解的是,由于游戲客戶端側(cè)存在斷網(wǎng)重連的機(jī)制,對(duì)應(yīng)于游戲服務(wù)器一側(cè),其接收到的同步包可能是游戲客戶端在確定需要發(fā)送所述同步包且確定自身處于斷網(wǎng)狀態(tài)時(shí),在預(yù)置重連次數(shù)閾值內(nèi)成功連接網(wǎng)絡(luò)后發(fā)送的同步包。
仍通過上述arpg手游的pve關(guān)卡戰(zhàn)斗場(chǎng)景為例:
假設(shè)玩家在進(jìn)入關(guān)卡后進(jìn)入戰(zhàn)斗場(chǎng)景,這個(gè)過程中游戲客戶端不需要與游戲服務(wù)器進(jìn)行網(wǎng)絡(luò)通信。
在玩家戰(zhàn)斗過程中,某一個(gè)時(shí)刻游戲客戶端網(wǎng)絡(luò)連接斷開。
按照現(xiàn)有的處理邏輯,游戲客戶端立即鎖定游戲界面,終止用戶的游戲操作,提示用戶網(wǎng)絡(luò)斷開,是否進(jìn)行重連。
而按照本申請(qǐng)的處理邏輯,游戲客戶端在確定網(wǎng)絡(luò)連接斷開后,判斷是否需要針對(duì)玩家操作而向游戲服務(wù)器發(fā)送同步包。由于關(guān)卡戰(zhàn)斗過程是不需要連接游戲服務(wù)器的,因此游戲客戶端確定不需要向游戲服務(wù)器發(fā)送同步包,進(jìn)而維持游戲界面的游戲場(chǎng)景,不終止用戶的游戲操作。同時(shí),設(shè)置斷網(wǎng)標(biāo)識(shí)。
當(dāng)玩家關(guān)卡戰(zhàn)斗結(jié)束,需要進(jìn)行關(guān)卡結(jié)束結(jié)算時(shí),游戲客戶端查詢斷網(wǎng)標(biāo)識(shí),確定網(wǎng)絡(luò)連接斷開,進(jìn)而按照設(shè)定重連次數(shù)自動(dòng)連接網(wǎng)絡(luò),在重連次數(shù)閾值內(nèi)成功連接網(wǎng)絡(luò)時(shí),繼續(xù)執(zhí)行業(yè)務(wù)操作,也即生成同步包,向游戲服務(wù)器發(fā)送;在重連次數(shù)閾值內(nèi)未成功連接網(wǎng)絡(luò)時(shí),提示用戶網(wǎng)絡(luò)斷開。
對(duì)比本申請(qǐng)與現(xiàn)有技術(shù)可知,本申請(qǐng)中在玩家戰(zhàn)斗過程出現(xiàn)游戲客戶端網(wǎng)絡(luò)連接斷開時(shí),游戲客戶端確定此時(shí)不需要連接游戲服務(wù)器時(shí),并不終止玩家游戲操作,也即斷網(wǎng)對(duì)玩家而言是透明的,僅在游戲客戶端確定需要連接游戲服務(wù)器時(shí),才自動(dòng)重新連接網(wǎng)絡(luò)。本申請(qǐng)方案能夠使得玩家更好的享 受游戲過程,提高了玩家的游戲體驗(yàn)度。
下面對(duì)本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置進(jìn)行描述,下文描述的數(shù)據(jù)處理裝置與上文描述的數(shù)據(jù)處理裝置方法可相互對(duì)應(yīng)參照。
參見圖4,圖4為本申請(qǐng)實(shí)施例從游戲服務(wù)器角度公開的一種數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。
如圖4所示,數(shù)據(jù)處理裝置包括:
同步包接收單元41,用于接收游戲客戶端發(fā)送的重試的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
響應(yīng)包查詢單元42,用于查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;
響應(yīng)包發(fā)送單元43,用于將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
應(yīng)用本申請(qǐng)實(shí)施例提供的數(shù)據(jù)處理裝置,游戲服務(wù)器在確認(rèn)收到的游戲客戶端發(fā)送的同步包為重試的同步包時(shí),在緩存中查詢與所述同步包對(duì)應(yīng)的響應(yīng)包,如果查詢到,則說明游戲服務(wù)器之前收到過該同步包并進(jìn)行了游戲數(shù)據(jù)的更新,因此直接將查找到的響應(yīng)包發(fā)送給游戲客戶端,而不會(huì)再次進(jìn)行游戲數(shù)據(jù)的更新,保證了游戲服務(wù)器針對(duì)同一同步包不會(huì)重復(fù)進(jìn)行游戲數(shù)據(jù)更新,也即不會(huì)給用戶帶來負(fù)面影響,保證用戶游戲體驗(yàn)度。
需要說明的是,所述同步包攜帶的同步請(qǐng)求用于更新游戲數(shù)據(jù),所述游戲數(shù)據(jù)可以包括游戲結(jié)算數(shù)據(jù)和/或虛擬貨幣交易數(shù)據(jù)。
可選的,所述同步包可以攜帶有包屬性,所述包屬性用于記錄所述同步包是否為重試的包,則所述同步包接收單元可以包括:
第一同步包接收子單元,用于接收游戲客戶端發(fā)送的同步包,根據(jù)所述同步包的包屬性判斷所述同步包是否為重試的包;若是,則確定所述同步包為重試的同步包。
可選的,所述同步包還可以攜帶有包標(biāo)識(shí),歷史緩存的響應(yīng)包標(biāo)記有對(duì)應(yīng)消息包的包標(biāo)識(shí),所述響應(yīng)包查詢單元可以包括:
第一響應(yīng)包查詢子單元,用于根據(jù)所述同步包的包標(biāo)識(shí),在歷史緩存的響應(yīng)包中查詢與所述包標(biāo)識(shí)對(duì)應(yīng)的響應(yīng)包。
參見圖5,圖5為本申請(qǐng)實(shí)施例從游戲客戶端角度公開的一種數(shù)據(jù)處理裝置結(jié)構(gòu)示意圖。
如圖5所示,數(shù)據(jù)處理裝置包括:
同步包確定單元51,用于確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
同步包發(fā)送單元52,用于將確定的同步包再次發(fā)送至游戲服務(wù)器;
響應(yīng)包接收單元53,用于接收所述游戲服務(wù)器反饋的響應(yīng)包,所述響應(yīng)包為所述游戲服務(wù)器收到所述同步包后,在歷史緩存的響應(yīng)包中查詢到的與所述同步包對(duì)應(yīng)的響應(yīng)包,在歷史緩存中查詢到的響應(yīng)包為游戲服務(wù)器根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包。
可選的,為了便于游戲服務(wù)器識(shí)別一個(gè)同步包是否為重試的包,可以在同步包中設(shè)置包屬性,包屬性用于記錄一個(gè)同步包是否為重試的包?;诖?,該裝置還可以包括:
包屬性更新單元,用于在所述同步包發(fā)送單元之前,對(duì)所述同步包的包屬性進(jìn)行更新,更新后的包屬性表明所述同步包為重試的包;
則所述同步包發(fā)送單元具體用于:
將包屬性更新后的同步包再次發(fā)送至游戲服務(wù)器。
可選的,為了保證游戲客戶端在發(fā)送了同步包等待游戲服務(wù)器反饋響應(yīng)包的過程中,不會(huì)再次向游戲服務(wù)器發(fā)送新的同步包,本申請(qǐng)的數(shù)據(jù)處理裝置還可以包括:
界面鎖定單元,用于在所述將確定的同步包再次發(fā)送至游戲服務(wù)器的同時(shí),鎖定游戲客戶端的游戲界面,以屏蔽玩家的游戲操作;
界面解鎖單元,用于在所述接收所述游戲服務(wù)器反饋的響應(yīng)包的同時(shí),解除游戲客戶端的游戲界面的鎖定。
可選的,上述數(shù)據(jù)處理裝置還可以包括:
斷網(wǎng)重連單元,用于僅在確定需要針對(duì)玩家當(dāng)前的游戲操作向游戲服務(wù)器發(fā)送消息包,且游戲客戶端處于斷網(wǎng)狀態(tài)時(shí),重新連接網(wǎng)絡(luò);在確定預(yù)置重連次數(shù)閾值內(nèi)成功連接網(wǎng)絡(luò)時(shí),向所述游戲服務(wù)器發(fā)送消息包;在確定預(yù)置重連次數(shù)閾值內(nèi)未成功連接網(wǎng)絡(luò)時(shí),提示用戶網(wǎng)絡(luò)斷開。
本申請(qǐng)還提供了一種數(shù)據(jù)處理系統(tǒng),包括游戲客戶端和游戲服務(wù)器,其中:
所述游戲客戶端確定已發(fā)送且未收到對(duì)應(yīng)響應(yīng)包的同步包,將確定的同步包再次發(fā)送至游戲服務(wù)器,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
所述游戲服務(wù)器接收游戲客戶端發(fā)送的同步包;查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
本申請(qǐng)還提供了一種游戲服務(wù)器,該游戲服務(wù)器包括上述應(yīng)用于游戲服務(wù)器的數(shù)據(jù)處理裝置。對(duì)于游戲服務(wù)器的硬件結(jié)構(gòu),參見圖6,圖6為本申請(qǐng)實(shí)施例提供的游戲服務(wù)器的硬件結(jié)構(gòu)示意圖。如圖6所示,該游戲服務(wù)器可以包括:
處理器1,通信接口2,存儲(chǔ)器3,通信總線4,和顯示屏5;
其中處理器1、通信接口2、存儲(chǔ)器3和顯示屏5通過通信總線4完成相互間的通信;
可選的,通信接口2可以為通信模塊的接口,如gsm模塊的接口;
處理器1,用于執(zhí)行程序;
存儲(chǔ)器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括處理器的操作指令。
處理器1可能是一個(gè)中央處理器cpu,或者是特定集成電路asic(applicationspecificintegratedcircuit),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
存儲(chǔ)器3可能包含高速ram存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatilememory),例如至少一個(gè)磁盤存儲(chǔ)器。
其中,程序可具體用于:
接收游戲客戶端發(fā)送的重試的同步包,所述同步包攜帶有更新游戲數(shù)據(jù)的同步請(qǐng)求;
查詢歷史緩存的響應(yīng)包中與所述同步包對(duì)應(yīng)的響應(yīng)包,其中,所查詢到的響應(yīng)包為根據(jù)歷史接收的所述同步包攜帶的同步請(qǐng)求,更新游戲數(shù)據(jù)后生成的響應(yīng)包;
將查詢到的響應(yīng)包發(fā)送至所述游戲客戶端。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本申請(qǐng)。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請(qǐng)的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本申請(qǐng)將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。