本發(fā)明涉及一種游戲中的交互處理方法、交互處理裝置、服務器系統(tǒng)以及用于服務器系統(tǒng)的方法。
背景技術:
在現(xiàn)實生活中,在移動終端上運行的移動游戲變得越來越普遍。因為移動游戲的碎片化的特點,玩家與玩家間的交互也不同于PC時代的強實時性交互,而是帶有了異步交互,離線交互的特點。所以對于移動游戲來說,如果僅僅通過一個世界聊天的區(qū)域?qū)崿F(xiàn)玩家之間的交互,可能存在利用率不高,制作出來性價比不高的問題。除此以外,每個游戲都在不遺余力地研究如何增加玩家間的社交,比如有些游戲中出現(xiàn)的“助戰(zhàn)”系統(tǒng)等。不過這些增加玩家交互的系統(tǒng),根據(jù)游戲本身的不同,需要做大量差異性的開發(fā),而且缺乏真實的玩家交互。
在用于游戲玩家的交互的現(xiàn)有技術中,某些游戲中也會內(nèi)嵌游戲相關論壇,當玩家點擊論壇時,一部分游戲會以打開外鏈的形式,跳出游戲通過瀏覽器來進行論壇操作。另一部分游戲會在游戲內(nèi)內(nèi)嵌可以進行web展示的組件進行論壇的展示,但仍然是以傳統(tǒng)web論壇作為載體來進行發(fā)帖,評論等操作。
打開外鏈的游戲論壇最大的優(yōu)點在于,可以簡單利用現(xiàn)有的可以通過PC訪問的游戲論壇,但是最大的缺點是要跳出到游戲外,破壞游戲的沉浸感。并且,此時的游戲是被切換到后臺的情況,如果是這種情況,在移動端很有可能游戲進程本身被系統(tǒng)直接回收掉了,導致要回到游戲必須要重新走登錄流程。
游戲內(nèi)嵌web展示組件的論壇體驗會比直接打開外鏈要好一些,不過目前現(xiàn)有的這種方式實現(xiàn)的論壇,大部分需要重新進行一次論壇的登錄,無法和游戲本身的賬號聯(lián)系到一起。此外,這種論壇的數(shù)據(jù)流向是單向的,游戲開發(fā)者無法從論壇系統(tǒng)中獲取任何數(shù)據(jù),即打開論壇之后,兩者即為脫離的兩個系統(tǒng)。
由此可見,用于游戲玩家交互的現(xiàn)有技術中存在以下問題:
1)訪問游戲論壇時會跳出游戲外,破壞游戲的沉浸感。
2)移動游戲會因此切換到后臺,并且很有可能游戲進程會被系統(tǒng)直接回收。
3)游戲論壇的登錄無法和游戲本身的賬號聯(lián)系在一起,需要重新登錄。
4)數(shù)據(jù)流向是單向的,游戲開發(fā)者無法從論壇系統(tǒng)獲取任何數(shù)據(jù)。
技術實現(xiàn)要素:
本申請實施例提供了一種游戲中的交互處理方法、交互處理裝置以及服務器系統(tǒng),已至少解決現(xiàn)有技術中存在的上述問題。
根據(jù)本發(fā)明的一個方面,提供一種游戲中的交互處理方法,包括:在游戲內(nèi)接收第一觸發(fā)操作,其中,所述第一觸發(fā)操作用于打開預定功能,所述預定功能為獨立于所述游戲的游戲功能的功能;響應于所述第一觸發(fā)操作,調(diào)用所述游戲中的庫,其中,所述庫為預先打包在所述游戲中的用于實現(xiàn)所述預定功能的庫;通過所述庫提供的接口與第一服務器進行交互。其中,所述第一服務器為向所述游戲提供所述預定功能的服務器。
根據(jù)本發(fā)明的另一個方面,提供一種交互處理裝置,包括:觸發(fā)接收模塊,用于在游戲內(nèi)接收第一觸發(fā)操作,其中,所述第一觸發(fā)操作用于打開預定功能,所述預定功能為獨立于所述游戲的游戲功能的功能;調(diào)用模塊,用于響應于所述第一觸發(fā)操作,調(diào)用所述游戲中的庫,其中,所述庫為預先打包在所述游戲中的用于實現(xiàn)所述預定功能的庫;以及交互模塊,用于通過所述庫提供的接口與第一服務器進行交互,其中,所述第一服務器為向所述游戲提供所述預定功能的服務器。
根據(jù)本發(fā)明的另一個方面,提供一種服務器系統(tǒng),包括:多個第一服務器,所述多個第一服務器分布在至少一個集群中,并且分別用于向多個不同游戲提供與所述游戲?qū)念A定功能,其中所述預定功能為獨立于所述游戲的游戲功能的功能;以及第二服務器,維護并存儲與不同游戲相對應的集群信息,操作用于從一個或多個游戲客戶端接收查詢請求,并向所述游戲客戶端反饋與所述游戲客戶端上所運行的游戲相對應的第一服務器所在的集群相關的集群信息。
根據(jù)本發(fā)明的另一個方面,提供一種用于服務器系統(tǒng)的方法,包括:將多個第一服務器分布在至少一個集群中,其中所述多個第一服務器分別用于向多個不同游戲提供與所述游戲?qū)念A定功能,其中所述預定功能為獨立于所述游戲的游戲功能的功能;以及通過第二服務器,維護并存儲與不同游戲相對應的集群信息,以及從一個或多個游戲客戶端接收查詢請求,并向所述游戲客戶端反饋與所述游戲客戶端上所運行的游戲相對應的第一服務器所在的集群相關的集群信息。
通過本申請的技術方案,可以在游戲中實現(xiàn)通用且易用的交互,從而可以在不需要做額外工作的情況下,提供一個完善的游戲內(nèi)交互系統(tǒng)。從而解決前面提出的技術問題。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當限定。在附圖中:
圖1是根據(jù)本申請實施例1的游戲中的交互方法的流程圖;
圖2是根據(jù)本申請實施例2的交互處理裝置的示意圖;
圖3是根據(jù)本申請實施例3的服務器系統(tǒng)的示意圖;
圖4是根據(jù)本申請實施例4的用于服務器的方法的流程圖;
圖5是根據(jù)本申請實施例5的分布式服務器系統(tǒng)的示意圖;
圖6是根據(jù)本申請實施例5的移動端的示意圖;
圖7是根據(jù)本申請實施例5的客戶端SDK完成社區(qū)登錄的流程圖;
圖8是根據(jù)本申請實施例5的通過客戶端SDK打開社區(qū)的流程圖;
具體實施方式
為了使本技術領域的人員更好地理解本申請方案,下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。
需要說明的是,本申請的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本申請的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或模塊或單元的過程、方法、系統(tǒng)、產(chǎn)品或設備不必限于清楚地列出的那些步驟或模塊或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設備固有的其它步驟或模塊或單元。
實施例1
附圖1示出了根據(jù)本申請實施例1的游戲中的交互處理方法的流程圖,所述方法可以但不限于由客戶端作為執(zhí)行主體予以實施,如附圖1所示,該方法包括:
S102:在游戲內(nèi)接收第一觸發(fā)操作,其中,所述第一觸發(fā)操作用于打開預定功能,所述預定功能為獨立于所述游戲的游戲功能的功能;
S104:響應于所述第一觸發(fā)操作,調(diào)用所述游戲中的庫,其中,所述庫為預先打包在所述游戲中的用于實現(xiàn)所述預定功能的庫;
S106:通過所述庫提供的接口與第一服務器進行交互,其中,所述第一服務器為向所述游戲提供所述預定功能的服務器。
根據(jù)實施例1的方法,可以在游戲運行中通過游戲中的庫來實現(xiàn)游戲與第一服務器的交互,并且所述庫是預先打包在游戲中的。因此,通過這樣的方式,可以在游戲中實現(xiàn)通用且易用的交互,從而可以在不需要做額外工作的情況下,提供一個完善的游戲內(nèi)交互系統(tǒng)。
可選地,所述預定功能為網(wǎng)絡社區(qū)功能,從而使得可以在游戲中實現(xiàn)通用且易用的網(wǎng)絡社區(qū)服務,在不需要做額外工作的情況下,提供游戲內(nèi)網(wǎng)絡社區(qū)系統(tǒng)。需要說明書的是,本申請的所提供的預定功能并不限于網(wǎng)絡社區(qū)功能。任何獨立于所述游戲的游戲功能的功能,都可以通過調(diào)用游戲中的庫來實現(xiàn),并與所述第一服務器進行交互。
可選地,在游戲內(nèi)接收第一觸發(fā)操作之前,還包括:在所述游戲的初始化的過程中,通過所述庫提供的初始化接口,對所述庫進行初始化。根據(jù)本發(fā)明,由于所述庫提供了初始化接口,從而在游戲的初始化過程中就可以對所述庫進行初始化,從而減少了用戶的操作,并且也提高了運行的效率。
可選地,在對所述庫進行初始化后,還包括:在所述游戲登錄時,通過所述庫提供的接口,根據(jù)所述游戲登錄游戲服務器時使用的用戶ID登錄所述第一服務器;或計算生成特征碼,通過所述庫提供的接口,根據(jù)所述特征碼登錄所述第一服務器。通過這樣的方式,克服了現(xiàn)有技術中存在的“二次登錄”的問題,從而游戲用戶只需要在打開游戲時完成一次游戲服務器的登錄,即可同時完成對所述第一服務器的登錄。從而避免了二次登錄,提高了游戲交互的便利性。
可選地,對所述庫進行初始化包括:通過所述庫提供的接口從第二服務器查詢與所述第一服務器所在的集群相關的集群信息,所述集群信息包括以下各項中的至少一項:集群名、集群網(wǎng)關服務器個數(shù)、所述游戲與集群之間的映射關系、所述第一服務器的IP地址和端口信息;通過所述庫提供的接口對所查詢的集群信息進行存儲。通過這樣的方式,在游戲初始化的過程中,可以對所述庫進行初始化,并且在第一服務器是分布在不同集群中的情況下,可以在庫的初始化過程中獲取有關第一服務器的集群信息,并且在登錄所述第一服務器時根據(jù)所查詢的集群信息連接至包括所述第一服務器的集群并進一部連接至所述第一服務器。從而使得本申請的交互方法能夠適用于分布式社區(qū)服務器架構(gòu),提高了交互系統(tǒng)的可擴展性。
可選地,登錄所述第一服務器包括:通過所述庫提供的接口根據(jù)所查詢的集群信息連接至包括所述第一服務器的集群,以及進一步連接至所述第一服務器并登錄所述第一服務器;如果所述查詢失敗,則通過所述庫提供的接口根據(jù)所存儲的集群信息連接至包括所述第一服務器的集群,以及通過所述庫提供的接口進一步連接至所述第一服務器并登錄所述第一服務器。通過這種方式,在登錄所述第一服務器時根據(jù)所查詢的集群信息連接至包括所述第一服務器的集群并進一部連接至所述第一服務器。從而使得本申請的交互方法能夠適用于分布式社區(qū)服務器架構(gòu),提高了交互系統(tǒng)的可擴展性。并且在查詢失敗時,通過所述庫提供的接口根據(jù)所存儲的集群信息連接至包括所述第一服務器的集群,可以增強整個登錄過程的健壯性,即在集群索引服務器出問題拉取不到集群信息的時候,可以用本地保存的緩存來進行社區(qū)連接;也可以加速響應時間,即如果游戲方初始化和登錄兩個接口調(diào)用得很快的情況下(比如沒有游戲服務器登錄的單機游戲),可以不用等待集群索引服務器的集群信息下發(fā)而直接用本地集群信息先進行社區(qū)連接,后續(xù)集群索引信息洗發(fā)后再刷新本地緩存。
可選地,與第一服務器進行交互,具體為:與第一服務器建立長鏈接,采用自定義協(xié)議與第一服務器進行交互。通過這樣的方式,本申請采取了區(qū)別于傳統(tǒng)的通過web連接社區(qū)的方法。由于采用了長鏈接的方式,可以在一個鏈接上連續(xù)發(fā)送多個數(shù)據(jù)包,從而可以支持頻繁的操作以及點對點的通訊。從而增強了該交互方法的實時性和交互性。并且由于采用了自定義的協(xié)議進行交互,因此可以支持游戲開發(fā)者設置更加靈活的交互形式。
可選地,通過所述庫提供的接口與第一服務器進行交互,包括:從本地緩存中讀取最新界面,用所述最新界面覆蓋所述游戲的游戲界面并予以顯示;向所述第一服務器發(fā)送獲取最新界面的請求;獲取所述第一服務器返回的最新界面,更新本地緩存并更新所述最新界面;獲取并向所述第一服務器轉(zhuǎn)發(fā)用戶對所述最新界面的操作請求;接收所述第一服務器對所述操作請求的響應并在所述最新界面中進行顯示。并且可選地,所述方法還包括接收第二觸發(fā)操作,關閉所述最新界面,并返回至所述游戲的游戲界面。通過這樣的方式,可以實現(xiàn)游戲接入方以最小的代價來獲得交互或社區(qū)功能的支持。
可選地,所述庫向開發(fā)者提供接口,以使得開發(fā)者通過所述接口與第一服務器進行交互。通過這樣的方式,本實施例的交互方法中的庫可以向開發(fā)者提供第三方接口,使得外部開發(fā)者通過調(diào)用該接口,獲取交互過程中的信息,并作出雙向的改動,比如獲取社區(qū)里面的關系鏈,或者從游戲端設置關系鏈到社區(qū)中。從而有利于游戲開發(fā)者對所述交互方法以及對所述游戲進行優(yōu)化。
實施例2
附圖2示出了根據(jù)本申請實施例2的交互處理裝置200的示意圖。參見附圖2所示,所述交互處理裝置200包括:
觸發(fā)接收模塊201,用于在游戲內(nèi)接收第一觸發(fā)操作,其中,所述第一觸發(fā)操作用于打開預定功能,所述預定功能為獨立于所述游戲的游戲功能的功能;
調(diào)用模塊202,用于響應于所述第一觸發(fā)操作,調(diào)用所述游戲中的庫,其中,所述庫為預先打包在所述游戲中的用于實現(xiàn)所述預定功能的庫;以及
交互模塊203,用于通過所述庫提供的接口與第一服務器進行交互,其中,所述第一服務器為向所述游戲提供所述預定功能的服務器。
參見實施例1的描述,通過這樣的方式,可以在游戲中實現(xiàn)通用且易用的交互,從而可以在不需要做額外工作的情況下,提供一個完善的游戲內(nèi)交互系統(tǒng)。
可選地,所述交互處理裝置200還包括初始化模塊,用于在游戲內(nèi)接收第一觸發(fā)操作之前,在所述游戲的初始化的過程中,通過所述庫提供的初始化接口,對所述庫進行初始化。
可選地,所述交互裝置200還包括:第一登錄模塊,用于在所述游戲登錄時,通過所述庫提供的接口,根據(jù)所述游戲登錄游戲服務器時使用的用戶ID登錄所述第一服務器;以及第二登錄模塊:用于計算生成特征碼,通過所述庫提供的接口,根據(jù)所述特征碼登錄所述第一服務器。
可選地,所述初始化模塊包括:集群信息查詢單元,用于通過所述庫提供的接口從第二服務器查詢與所述第一服務器所在的集群相關的集群信息,所述集群信息包括以下各項中的至少一項:集群名、集群網(wǎng)關服務器個數(shù)、所述游戲與集群之間的映射關系、所述第一服務器的IP地址和端口信息;以及集群信息存儲單元,用于通過所述庫提供的接口對所查詢的集群信息進行存儲。
可選地,所述交互模塊203包括:界面讀取單元,用于從本地緩存中讀取最新界面,用所述最新界面覆蓋所述游戲的游戲界面并予以顯示;界面請求單元,用于向所述第一服務器發(fā)送獲取最新界面的請求;界面更新單元,用于獲取所述第一服務器返回的最新界面,更新本地緩存并更新所述最新界面;操作請求單元,用于獲取并向所述第一服務器轉(zhuǎn)發(fā)用戶對所述最新界面的操作請求;以及顯示單元,用于接收所述第一服務器對所述操作請求的響應并在所述最新界面中進行顯示。
可選地,所述交互模塊203還包括:界面關閉單元,用于接收第二觸發(fā)操作,關閉所述最新界面,并返回至所述游戲的游戲界面。
可選地,所述庫向開發(fā)者提供接口,以使得開發(fā)者通過所述接口與第一服務器進行交互。
實施例3
附圖3示出了根據(jù)本申請實施例3的服務器系統(tǒng)的示意圖。參見附圖3所示,所述服務器系統(tǒng)包括:
多個第一服務器S1至Sn,所述多個第一服務器S1至Sn分布在至少一個集群C1至Cn中,并且分別用于向多個不同游戲提供與所述游戲?qū)念A定功能,其中所述預定功能為獨立于所述游戲的游戲功能的功能;以及
第二服務器Sc,維護并存儲與不同游戲相對應的集群信息,操作用于從一個或多個游戲客戶端接收請求,并向所述游戲客戶端反饋與所述游戲客戶端上所運行的游戲相對應的第一服務器所在的集群相關的集群信息。
通過這樣的方式,實現(xiàn)了可靠的分布式服務器架構(gòu),并且使得不同游戲可以迅速接入第一服務器進行交互,方便服務器系統(tǒng)的擴展。
可選地,所述預定功能為網(wǎng)絡社區(qū)功能。從而使得不同游戲可以迅速的接入社區(qū),方便社區(qū)服務器的擴展。
可選地,所述集群信息包括以下各項中的至少一項:集群名、集群網(wǎng)關服務器個數(shù)、游戲與集群之間的映射關系、以及所述第一服務器的IP地址和端口信息。從而方便游戲迅速接入集群中的第一服務器進行交互。
可選地,所述第一服務器設置為能夠根據(jù)所述游戲在登錄游戲服務器時所使用的用戶ID進行登錄或根據(jù)所述游戲客戶端計算生成的特征碼進行登錄。通過這樣的方式,克服了現(xiàn)有技術中存在的“二次登錄”的問題,從而游戲用戶只需要在打開游戲時完成一次游戲服務器的登錄,即可同時完成對所述第一服務器的登錄。從而避免了二次登錄,提高了游戲交互的便利性。
可選地,所述第二服務器還配置為在以下至少一種情況下,更新所述集群信息:在至少一個集群中增加新的第一服務器;以及增加一個或多個新的集群。從而通過這種方式,在增加新的游戲時,可以方便地對分布式服務器架構(gòu)進行擴展。
實施例4
附圖4示出了根據(jù)本申請實施例4的用于服務器系統(tǒng)的方法的流程圖,所述方法可以但不限于由服務端作為執(zhí)行主體予以實施,如附圖4所示,所述方法包括:
S402:將多個第一服務器分布在至少一個集群中,其中所述多個第一服務器分別用于向多個不同游戲提供與所述游戲?qū)念A定功能,其中所述預定功能為獨立于所述游戲的游戲功能的功能;以及
S404:通過第二服務器,維護并存儲與不同游戲相對應的集群信息,以及從一個或多個游戲客戶端接收查詢請求,并向所述游戲客戶端反饋與所述游戲客戶端上所運行的游戲相對應的第一服務器所在的集群相關的集群信息。
參照實施例4所述,通過這樣的方式,實現(xiàn)了可靠的分布式服務器架構(gòu),并且使得不同游戲可以迅速接入第一服務器進行交互,方便服務器系統(tǒng)的擴展。
可選地,所述預定功能為網(wǎng)絡社區(qū)功能。從而使得不同游戲可以迅速的接入社區(qū),方便社區(qū)服務器的擴展。
可選地,所述集群信息包括以下各項中的至少一項:集群名、集群網(wǎng)關服務器個數(shù)、游戲與集群之間的映射關系、以及所述第一服務器的IP地址和端口信息。從而方便游戲迅速接入集群中的第一服務器進行交互。
可選地,所述第一服務器設置為能夠根據(jù)所述游戲在登錄游戲服務器時所使用的用戶ID進行登錄或根據(jù)所述游戲客戶端計算生成的特征碼進行登錄。從而克服了現(xiàn)有技術中存在的“二次登錄”的問題,從而游戲用戶只需要在打開游戲時完成一次游戲服務器的登錄,即可同時完成對所述第一服務器的登錄。從而避免了二次登錄,提高了游戲交互的便利性。
可選地,所述第一服務器在登錄后,向所述電子設備提供對應于所述一個游戲的所述預定功能。從而實現(xiàn)對游戲提供交互功能,尤其是網(wǎng)絡社區(qū)功能。
可選地,還包括在以下至少一種情況下,通過所述第二服務器更新所述集群信息:在至少一個集群中增加新的第一服務器;以及增加一個或多個新的集群。從而通過這種方式,在增加新的游戲時,可以方便地對分布式服務器架構(gòu)進行擴展。
實施例5
下面在實施例5中,本申請將結(jié)合更加具體的實施方式來對本申請的技術方案進行說明,但是需要注意的是,實施例5中的方案只是用于更好地理解本申請,而不應視為對本申請保護范圍的限定。
(一)為游戲提供網(wǎng)絡社區(qū)服務的分布式服務器架構(gòu)
如圖5所示,運行在移動終端上的游戲可以基于可靠的分布式服務器架構(gòu)運行。所述運行環(huán)境包括集群(例如集群1和集群2等)以及集群索引服務器(對應權利要求中的第二服務器)。各個集群當中又包括社區(qū)網(wǎng)關服務器(對應于權利要求中的第一服務器)以及后端云存儲。
(二)游戲中的庫的示意圖
圖6示出了根據(jù)本申請實施例5所述的移動終端600的示意圖。如附圖6所示,移動終端600上設置有游戲客戶端610,并且游戲客戶端610內(nèi)設置有預先打包的庫,該庫的實現(xiàn)方式不受限制,例如其可以作為靜態(tài)庫(例如SDK)的方式實現(xiàn),也可以是嵌入在游戲中的程序,或者由動態(tài)鏈接庫實現(xiàn)。為了便于說明,下面以客戶端SDK 620作為例子說明所述庫。
可選地,所述的客戶端SDK 620可以在IOS系統(tǒng)上采用Object C實現(xiàn),或在Android系統(tǒng)上采用Java實現(xiàn)。這兩種語言均為其操作系統(tǒng)原生語言,因此可以保證極少的資源占用與第三方工具依賴,對操作系統(tǒng)兼容性最高。除此以外,所述客戶端SDK還可針對不同引擎進行引擎層的封裝,完全屏蔽了底層不同系統(tǒng)的細節(jié),因為移動游戲發(fā)布一般來說是IOS和Android雙平臺都有,所以通過此引擎適配層使之不用關心平臺細節(jié)而可以自動打包出正確的社區(qū)版本到游戲中。
如附圖6所示,實施例5所示的客戶端SDK 620包括初始化接口621、登錄接口622、打開接口623、社區(qū)服務器交互接口624以及第三方接口625。此外,所述社客戶端SDK 620所包括的接口不限于此,本領域技術人員可以根據(jù)實際需要增加其他的接口。
其中,初始化接口621用于在游戲初始化時,由游戲啟動該初始化接口621,對所述的客戶端SDK 620進行初始化。并且進一步的,在對所述客戶端SDK 620的初始化過程中,初始化接口621可用于與后面所述的集群索引服務器進行交互。
登錄接口622用于由游戲客戶端啟動,從而進行社區(qū)網(wǎng)關服務器(對應于權利要求中的第一服務器)的登錄操作。其中,可以在游戲客戶端完成游戲服務器的登錄之后,啟動該登錄接口622實現(xiàn)對社區(qū)的登錄??蛇x地,所述登錄接口622將所述游戲登錄游戲服務器時使用的用戶ID(UID)發(fā)送給社區(qū)網(wǎng)關服務器,由所述社區(qū)網(wǎng)關服務器根據(jù)該用戶ID與登錄社區(qū)網(wǎng)關服務器的賬號之間的映射關系,獲得登錄社區(qū)網(wǎng)關服務器的賬號,從而完成登錄。通過這樣的方式,本實施例提供了統(tǒng)一的登錄接口來進行登錄,直接利用游戲內(nèi)部的賬號體系將社區(qū)和游戲賬號一一對應起來。
并且如果游戲客戶端中本身沒有登錄步驟,則游戲客戶端在客戶端SDK620的初始化之后直接啟動登錄接口622的操作??蛇x地,所述登錄接口622計算一個特征碼(例如一個本機穩(wěn)定的哈希碼),將其作為賬號登錄社區(qū)網(wǎng)關服務器。從而同時支持游戲內(nèi)賬號登錄和無賬號登錄兩種方式,可以靈活地支持聯(lián)網(wǎng)移動游戲和單機移動游戲這兩種游戲。
打開接口623用于接管當前客戶端的最上層的用戶界面從而展示社區(qū)用戶界面。并且在接管客戶端的最上層的用戶界面后,用戶的所有操作,如點,劃動等,都會處于社區(qū)用戶界面內(nèi),成為對社區(qū)用戶界面的展示。直到用戶關閉社區(qū)用戶界面為止。
社區(qū)服務器交互接口624用于實現(xiàn)與社區(qū)網(wǎng)關服務器的交互,具體參見后面所述。
第三方接口625用于使得游戲開發(fā)者能夠通過該第三方接口625與社區(qū)網(wǎng)關服務器進行交互。從而使得外部開發(fā)者通過調(diào)用該接口,獲取交互過程中的信息,并作出雙向的改動,比如獲取社區(qū)里面的關系鏈,或者從游戲端設置關系鏈到社區(qū)中。從而有利于游戲開發(fā)者對所述交互方法以及對所述游戲進行優(yōu)化。
附圖7示出了游戲客戶端使用實施例1所示的客戶端SDK 620完成社區(qū)登錄的流程示意圖。
當游戲客戶端啟動時,在步驟S701,游戲客戶端啟動客戶端SDK 620的初始化接口621,從而使得初始化接口621對客戶端SDK 620進行初始化,見步驟S702。并且在初始化過程中,初始化接口621向集群索引服務器發(fā)起查詢的請求。集群索引服務器在接收到來自客戶端SDK 620的初始化接口621的查詢請求后,在步驟S703進行查詢并返回集群信息。其中從集群索引服務器返回的集群信息主要包括集群名、集群網(wǎng)關服務器個數(shù)、游戲與集群之間的映射關系以及每臺社交網(wǎng)關服務器的IP和端口信息。然后所述初始化接口621在收到所述集群信息后,在步驟S704將集群信息保存在本地的存儲器中。
進一步的當游戲客戶端在步驟S705完成對游戲服務器的登錄之后,游戲客戶端在步驟S706啟動客戶端SDK 620的登錄接口622從而啟動對社區(qū)的登錄??蛻舳薙DK 620的登錄接口622隨后在步驟S707分析集群信息,并在步驟S708連接集群并對社區(qū)網(wǎng)關服務器進行登錄操作。社區(qū)網(wǎng)關服務器隨后在步驟S709執(zhí)行登錄并且登錄成功后在步驟S710將基本信息返回至客戶端SDK 620的登錄接口622。由此,完成對社區(qū)的登錄。
其中,在本實施例1的方法中,由于客戶端SDK 620的初始化接口621在步驟S704將集群索引服務器返回的集群信息存儲在本地,因此達到了以下的有益效果:第一是增強健壯性,在集群索引服務器出問題拉取不到集群信息的時候,可以用本地保存的集群信息來進行社區(qū)連接;第二是加速響應時間,如果游戲方初始化和登錄兩個接口調(diào)用得很快的情況下(比如沒有游戲服務器登錄的單機游戲),可以不用等待集群索引服務器的集群信息下發(fā)而直接用本地集群信息先進行社區(qū)連接,后續(xù)集群索引信息洗發(fā)后再刷新本地緩存。
也就是說,在如圖7所示,客戶端SDK 620起到了屏蔽所有后端交互的作用,且不影響游戲客戶端自身的登錄等流程。游戲客戶端并不一定非要等待從集群索引服務器返回集群信息后才進行登錄社區(qū)網(wǎng)關服務器的登錄,而是在游戲客戶端自身被啟動并且在步驟S705完成游戲服務器的登錄操作之后,隨即在步驟S706啟動客戶端SDK 620的登錄接口622,進行社區(qū)網(wǎng)關服務器的登錄。如果此時客戶端SDK 620的初始化接口621還沒有收到來自集群索引服務器的集群信息,則采用本地保存的集群信息進行社區(qū)的連接。
此外,在步驟702中客戶端SDK 620的初始化接口621會在步驟702連接至集群索引服務器,并且查詢游戲與集群之間的映射關系、社區(qū)網(wǎng)關服務器的IP以及端口等集群信息。在得到集群信息之后,客戶端SDK 620的登錄接口622在步驟S707分析集群信息,從而在步驟S708連接正確的集群并且對該集群中的社區(qū)網(wǎng)關服務器進行登錄操作。也就是說,所述的客戶端SDK 620會根據(jù)集群信息連接到正確的集群,從而客戶端SDK 620本身能夠確定哪個游戲是由哪個集群提供服務。從而使得無論是游戲開發(fā)者還是用戶都不用關心這個問題。
附圖8示出了當游戲客戶端的用戶想要打開社區(qū)(對應于權利要求中所述的打開預定功能)時的方法流程圖。
如附圖8所示,當游戲客戶端的用戶對游戲客戶端進行操作以便打開社區(qū)時(例如點擊“打開論壇”的按鈕),游戲客戶端在步驟S801啟動客戶端SDK 620的打開接口623。從而所述打開接口623在步驟S802打開本地緩存的社區(qū)主頁,并且接管當前游戲客戶端最上層的用戶界面展示,即展示一個覆蓋游戲畫面,位于整個游戲用戶界面最上層的社區(qū)主頁,而用戶的所有操作,如點,劃動等,都會處于社區(qū)用戶界面內(nèi)。在步驟S803,打開接口623向社區(qū)網(wǎng)關服務器發(fā)送拉取最新主頁的請求,并且社區(qū)網(wǎng)關服務器在收到該請求后,在步驟S804檢測社區(qū)主頁是否有更新,并且當將測到社區(qū)主頁有更新時,在步驟S805向客戶端SDK 620的打開接口623返回最新的社區(qū)主頁用于展示給用戶。隨后用戶對所述社區(qū)用戶界面的操作,如點、劃動等動作,可以通過社區(qū)服務器交互接口624轉(zhuǎn)送至所述社區(qū)網(wǎng)關服務器,并且通過所述交互接口624接收所述社區(qū)網(wǎng)關服務器更新的內(nèi)容。
當用戶想要返回游戲時,執(zhí)行關閉社區(qū)的操作(點擊社區(qū)主頁上的“關閉”按鈕),從而所述客戶端SDK620在步驟S806對用戶的關閉操作做出響應,并且在步驟S807返回到游戲。
通過以上操作,使得游戲接入方可以用最小的代價來獲得完整的社區(qū)功能的支持。
此外,可選地,所述打開接口623與所述社區(qū)網(wǎng)關服務器建立長鏈接,并且所述社區(qū)服務器交互接口624通過自定義的協(xié)議與所述社區(qū)網(wǎng)關服務器交互。由于采用了長鏈接的方式,可以在一個鏈接上連續(xù)發(fā)送多個數(shù)據(jù)包,從而可以支持頻繁的操作以及點對點的通訊。從而增強了該交互方法的實時性和交互性。并且由于采用了自定義的協(xié)議進行交互,因此可以支持更加靈活的交互形式。
此外,在交互過程中,游戲開發(fā)者能夠通過第三方接口625與社區(qū)網(wǎng)關服務器進行交互。從而使得外部開發(fā)者通過調(diào)用該接口,獲取交互過程中的信息,并作出雙向的改動,比如獲取社區(qū)里面的關系鏈,或者從游戲端設置關系鏈到社區(qū)中。從而有利于游戲開發(fā)者對所述交互過程以及對所述游戲進行優(yōu)化。
如上所述,通過本申請的技術方案,可以在不需要做額外工作的情況下,提供一個完善的游戲內(nèi)社區(qū)系統(tǒng),且在游戲社區(qū)使用過程中無需跳出游戲,并且還可以根據(jù)游戲風格不同,定制化社區(qū)顯示效果,不破壞游戲本身的沉浸感。同時也克服了現(xiàn)有技術中存在的訪問游戲論壇時會跳出游戲外,破壞游戲的沉浸感、移動游戲會因此切換到后臺,并且很有可能游戲進程會被系統(tǒng)直接回收、游戲論壇的登錄無法和游戲本身的賬號聯(lián)系在一起,需要重新登錄以及即便有不用重新登錄的論壇,其數(shù)據(jù)流向也是單向的,游戲無法從論壇系統(tǒng)獲取任何數(shù)據(jù)的技術問題。
上述本申請實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本申請的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元或模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,模塊或單元的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元或模塊可以是或者也可以不是物理上分開的,作為單元或模塊顯示的部件可以是或者也可以不是物理單元或模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元或模塊上。可以根據(jù)實際的需要選擇其中的部分或者全部單元或模塊來實現(xiàn)本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元或模塊可以集成在一個處理單元或模塊中,也可以是各個單元或模塊單獨物理存在,也可以兩個或兩個以上單元或模塊集成在一個單元或模塊中。上述集成的單元或模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元或模塊的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本申請的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網(wǎng)絡設備等)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本申請的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本申請原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本申請的保護范圍。