消息處理方法和服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)應(yīng)用領(lǐng)域,具體而言,涉及一種消息處理方法和服務(wù)器。
【背景技術(shù)】
[0002]在現(xiàn)有技術(shù)中,通常會(huì)利用3D引擎來實(shí)現(xiàn)虛擬對(duì)象在虛擬空間中的建模計(jì)算,然而傳統(tǒng)的3D引擎主要針對(duì)單機(jī)游戲或者是端游客戶端開發(fā),換而言之,其主要是針對(duì)客戶端表現(xiàn)來開發(fā)的,因此傳統(tǒng)的3D引擎所要求的對(duì)模型的計(jì)算精度較高、計(jì)算量較大,例如傳統(tǒng)的3D引擎通常會(huì)采用大量的多邊形對(duì)虛擬對(duì)象的輪廓進(jìn)行描繪。而模型是碰撞檢測(cè)的基礎(chǔ),因此若將傳統(tǒng)的3D引擎移植到服務(wù)器,并以此為基礎(chǔ)實(shí)現(xiàn)碰撞檢測(cè)的邏輯,則會(huì)占用較多的服務(wù)器資源,進(jìn)而帶來可維護(hù)性和性能承載下降問題。比如一些常見的物理引擎在移植到服務(wù)器后,單臺(tái)B6機(jī)型只能承載500?600個(gè)用戶。
[0003]另一種現(xiàn)有方案的思路是將相關(guān)計(jì)算邏輯完全放在客戶端,服務(wù)器完全信任客戶端或者只做有限的校驗(yàn),比如適當(dāng)抽取一些邏輯在服務(wù)器也進(jìn)行一次計(jì)算,和客戶端上傳的結(jié)果做比較,判斷虛擬對(duì)象是否存在非正常行為。然而抽樣計(jì)算的檢測(cè)方式并不能保證完整的計(jì)算邏輯的可靠性,從而容易被外掛所利用,且用戶的常規(guī)操作也可能會(huì)帶來非正常的位移結(jié)果。換而言之,現(xiàn)有方案在確保虛擬對(duì)象合理移動(dòng)的前提下便需要占用較多服務(wù)器資源,在降低服務(wù)器壓力的前提下便無法保證移動(dòng)邏輯和碰撞檢測(cè)邏輯的可靠性。
[0004]針對(duì)上述的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種消息處理方法和服務(wù)器,以至少解決現(xiàn)有技術(shù)在確保虛擬對(duì)象合理移動(dòng)的前提下需要占用較多服務(wù)器資源的技術(shù)問題。
[0006]根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種消息處理方法,包括:接收客戶端發(fā)送的攜帶有位移參數(shù)的第一消息,上述位移參數(shù)由上述客戶端生成,用于表示虛擬對(duì)象在虛擬空間中的位移;根據(jù)上述位移參數(shù)判斷上述位移是否符合預(yù)設(shè)規(guī)則;若判斷出不符合上述預(yù)設(shè)規(guī)則,則發(fā)送用于使上述客戶端拒絕上述位移的第二消息。
[0007]根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種消息處理裝置,包括:接收單元,用于接收客戶端發(fā)送的攜帶有位移參數(shù)的第一消息,上述位移參數(shù)由上述客戶端生成,用于表示虛擬對(duì)象在虛擬空間中的位移;判斷單元,用于根據(jù)上述位移參數(shù)判斷上述位移是否符合預(yù)設(shè)規(guī)則;發(fā)送單元,用于在判斷出不符合上述預(yù)設(shè)規(guī)則時(shí),發(fā)送用于使上述客戶端拒絕上述位移的第二消息。
[0008]在本發(fā)明實(shí)施例中,將決定了畫面表現(xiàn)并占用較多處理資源和存儲(chǔ)資源的精細(xì)化的虛擬空間的建模計(jì)算以及虛擬對(duì)象的碰撞檢測(cè)計(jì)算交給客戶端來完成,并由客戶端上傳與虛擬對(duì)象在虛擬空間中所要進(jìn)行的移動(dòng)相關(guān)的位移參數(shù)以實(shí)現(xiàn)服務(wù)器側(cè)對(duì)應(yīng)數(shù)據(jù)的更新,而服務(wù)器僅需存儲(chǔ)較為粗糙的建模結(jié)果,并可以通過對(duì)客戶端上傳的攜帶有位移參數(shù)的第一消息的處理來判斷客戶端自行計(jì)算得出的位移結(jié)果是否符合與該較為粗糙的建模結(jié)果對(duì)應(yīng)的預(yù)設(shè)規(guī)則,并在判斷出不符合該預(yù)設(shè)規(guī)則的情形下拒絕客戶端自行計(jì)算的位移結(jié)果。
[0009]由此可見,在本發(fā)明實(shí)施例中,服務(wù)器僅需保障虛擬對(duì)象在虛擬空間中的移動(dòng)邏輯的“安全性”和“可靠性”,而并不需要保障碰撞畫面表現(xiàn)的“真實(shí)性”,從而在不占用過多服務(wù)器資源的前提下,避免了諸如在客戶端的惡意修改所造成的虛擬對(duì)象的非正常移動(dòng),進(jìn)而解決了現(xiàn)有技術(shù)在確保虛擬對(duì)象合理移動(dòng)的前提下需要占用較多服務(wù)器資源的技術(shù)問題。
【附圖說明】
[0010]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0011]圖1是根據(jù)本發(fā)明實(shí)施例的一種可選的消息處理方法的示意圖;
[0012]圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的虛擬空間中的部分區(qū)域的示意圖;
[0013]圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的位移合理性判斷的示意圖;
[0014]圖4是根據(jù)本發(fā)明實(shí)施例的另一種可選的位移合理性判斷的示意圖;
[0015]圖5是根據(jù)本發(fā)明實(shí)施例的一種可選的服務(wù)器的示意圖。
【具體實(shí)施方式】
[0016]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
[0017]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0018]實(shí)施例1
[0019]根據(jù)本發(fā)明實(shí)施例,提供了一種消息處理方法,如圖1所示,該方法包括:
[0020]S102:接收客戶端發(fā)送的攜帶有位移參數(shù)的第一消息,該位移參數(shù)由該客戶端生成,用于表示虛擬對(duì)象在虛擬空間中的位移;
[0021]S104:根據(jù)該位移參數(shù)判斷該位移是否符合預(yù)設(shè)規(guī)則;
[0022]S106:若判斷出不符合該預(yù)設(shè)規(guī)則,則發(fā)送用于使該客戶端拒絕該位移的第二消肩、O
[0023]應(yīng)當(dāng)明確的是,本發(fā)明技術(shù)方案所要解決的問題之一是提供一種對(duì)消息的處理方法,以便于限制由服務(wù)器所維護(hù)、并由客戶端所加載的虛擬空間中的虛擬對(duì)象可能發(fā)生的非正常移動(dòng)。其中,該客戶端可以用來指代連接至服務(wù)器并向服務(wù)器請(qǐng)求與該虛擬空間及虛擬對(duì)象相關(guān)的服務(wù)的物理設(shè)備,比如作為固定終端的個(gè)人電腦或者是作為移動(dòng)終端的智能手機(jī)、平板電腦等,其也可以用來指代在上述物理設(shè)備及其系統(tǒng)上運(yùn)行的客戶端應(yīng)用,t匕如游戲客戶端等,這并不影響對(duì)本發(fā)明技術(shù)方案的理解與實(shí)施及其技術(shù)效果的實(shí)現(xiàn),本發(fā)明對(duì)此也不作限定。
[0024]在現(xiàn)有技術(shù)中,通常會(huì)利用3D引擎來實(shí)現(xiàn)虛擬對(duì)象在虛擬空間中的建模計(jì)算,然而傳統(tǒng)的3D引擎主要針對(duì)單機(jī)游戲或者是端游客戶端開發(fā),換而言之,其主要是針對(duì)客戶端表現(xiàn)來開發(fā)的,因此傳統(tǒng)的3D引擎所要求的對(duì)模型的計(jì)算精度較高、計(jì)算量較大,例如傳統(tǒng)的3D引擎通常會(huì)采用大量的多邊形對(duì)虛擬對(duì)象的輪廓進(jìn)行描繪。而模型是碰撞檢測(cè)的基礎(chǔ),因此若將傳統(tǒng)的3D引擎移植到服務(wù)器,并以此為基礎(chǔ)實(shí)現(xiàn)碰撞檢測(cè)的邏輯,則會(huì)占用較多的服務(wù)器資源,進(jìn)而帶來可維護(hù)性和性能承載下降問題。比如一些常見的物理引擎在移植到服務(wù)器后,單臺(tái)B6機(jī)型只能承載500?600個(gè)用戶。
[0025]另一種現(xiàn)有方案的思路是將相關(guān)計(jì)算邏輯完全放在客戶端,服務(wù)器完全信任客戶端或者只做有限的校驗(yàn),比如適當(dāng)抽取一些邏輯在服務(wù)器也進(jìn)行一次計(jì)算,和客戶端上傳的結(jié)果做比較,判斷虛擬對(duì)象是否存在非正常行為。然而抽樣計(jì)算的檢測(cè)方式并不能保證完整的計(jì)算邏輯的可靠性,從而容易被外掛所利用,且用戶的常規(guī)操作也可能會(huì)帶來非正常的位移結(jié)果。換而言之,現(xiàn)有方案在確保虛擬對(duì)象合理移動(dòng)的前提下便需要占用較多服務(wù)器資源,在降低服務(wù)器壓力的前提下便無法保證移動(dòng)邏輯和碰撞檢測(cè)邏輯的可靠性。
[0026]為解決上述問題,在本發(fā)明實(shí)施例中,將決定了畫面表現(xiàn)并占用較多處理資源和存儲(chǔ)資源的精細(xì)化的建模計(jì)算和碰撞檢測(cè)邏輯交給客戶端來完成,并由客戶端上傳與虛擬對(duì)象在虛擬空間中所要進(jìn)行的移動(dòng)相關(guān)的位移參數(shù)來對(duì)服務(wù)器側(cè)的數(shù)據(jù)的更新,然而服務(wù)器并非完全信任客戶端上傳的信息,而是利用較為粗糙的檢測(cè)邏輯對(duì)客戶端上傳的攜帶有位移參數(shù)的第一消息進(jìn)行處理,并判斷客戶端自行計(jì)算得出的位移結(jié)果是否符合粗糙化的預(yù)設(shè)規(guī)則,進(jìn)而在判斷出不符合該預(yù)設(shè)規(guī)則的情形下拒絕客戶端自行計(jì)算的位移結(jié)果。
[0027]由此可見,在本發(fā)明實(shí)施例中,服務(wù)器僅需保障虛擬對(duì)象在虛擬空間中的移動(dòng)邏輯的“安全性”和“可靠性”,而并不需要保障碰撞畫面表現(xiàn)的“真實(shí)性”,從而在不占用過多服務(wù)器資源的前提下,避免了諸如在客戶端的惡意修改所造成的虛擬對(duì)象的非正常移動(dòng),進(jìn)而解決了現(xiàn)有技術(shù)在確保虛擬對(duì)象合理移動(dòng)的前提下需要占用較多服務(wù)器資源的技術(shù)問題。
[0028]以下將結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明技術(shù)方案及其工作原理進(jìn)行描述。
[0029]根據(jù)本發(fā)明實(shí)施例提供的處理方法,在步驟S102中,服務(wù)器可以接收客戶端發(fā)送的攜帶有位移參數(shù)的第一消息,其中,該位移參數(shù)由客戶端生成,用于表示虛擬對(duì)象在虛擬空間中的位移。
[0030]在本發(fā)明實(shí)施例中,由于位移參數(shù)由客戶端生成,因此可以利用客戶端上運(yùn)行的傳統(tǒng)的3D引擎完成精細(xì)化的建模計(jì)算和碰撞邏輯檢測(cè)。在此基礎(chǔ)上,客戶端根據(jù)用戶輸入的操作指令計(jì)算出虛擬對(duì)象在虛擬空間中所要進(jìn)行的位移時(shí),還需向服務(wù)器發(fā)送必要的位移參數(shù),以便于服務(wù)器根據(jù)該位移參數(shù)對(duì)虛擬對(duì)象所要進(jìn)行的位移是否符合游戲開發(fā)者所設(shè)置的預(yù)設(shè)規(guī)則。
[0031]具體地,該位移參數(shù)通常可以包括表示該位移的起始點(diǎn)位置的參數(shù)以及表示該位移的終止點(diǎn)位置的參數(shù),從而也可以視為是一種矢量信息的上傳。然而本發(fā)明對(duì)此不作限定,例如,在本發(fā)明的一些實(shí)施例中,客戶端發(fā)送的第一消息中也可以僅攜帶有表示位移的終止點(diǎn)位置的參數(shù),進(jìn)而服務(wù)器可以結(jié)合存儲(chǔ)在服務(wù)器本地的客戶端之前上傳的位置記錄來判斷出客戶端本次上傳所請(qǐng)求的位移如何進(jìn)行。此外,在本發(fā)明實(shí)施例中,服務(wù)器對(duì)客戶端所發(fā)送的第一消息的具體接收方式可以從為本領(lǐng)域技術(shù)人員所知的方式中選取,本發(fā)明在此不作累述。
[0032]當(dāng)然,以上僅作為示例性描述,并不會(huì)對(duì)本發(fā)明構(gòu)成任何不必要的限定。例如,在本發(fā)明的一些實(shí)施例中,虛擬空間也可以并非三維空間,對(duì)于用來維護(hù)二維場(chǎng)景的服務(wù)器來說,仍然可以通過將精細(xì)化的場(chǎng)景描述與粗糙化的檢測(cè)邏輯分離設(shè)置在客戶端與服務(wù)器上的方式來達(dá)到確保邏輯的可靠性并降低服務(wù)器的處理壓力的效果,本發(fā)明對(duì)此不作限定。
[0033]進(jìn)一步地,根據(jù)本發(fā)明實(shí)施例提供的處理方法,在步驟S104中,可以根據(jù)該位移參數(shù)來判斷客戶單所請(qǐng)求的位移是否符合預(yù)設(shè)規(guī)則。其中,該預(yù)設(shè)規(guī)則通常是由虛擬空間的開發(fā)、管理或維護(hù)人員所設(shè)置的用于對(duì)該虛擬對(duì)象在該虛擬空間內(nèi)進(jìn)行移動(dòng)所應(yīng)遵守的規(guī)則,例如,對(duì)于一些模擬現(xiàn)實(shí)的虛擬空間來說,作為虛擬對(duì)象的虛擬人物在行走到虛擬