Skip to content

檢驗伺服器(必接) ​

  • 在玩家登錄成功,玩家選擇完伺服器之後,點擊“開始遊戲”按鈕時,調用該接口,檢測選擇的伺服器狀態是否正常,後臺記錄玩家登錄的伺服器信息。在捕獲到伺服器狀態正常的情況下才可進入遊戲。如果當前伺服器是在關服維護狀態,SDK會彈出維護提示並返回error,此時遊戲應繼續停留在此界面停止進入遊戲的後續邏輯,以讓玩家可以選擇其他伺服器或等待伺服器開啟。
  • 此接口傳入的伺服器信息應為玩家最後登錄的伺服器信息,當遊戲使用遊戲的選服頁界面的時候,務必傳入正確的serverid,SDK會根據傳入的serverid值去SDK服務器後臺檢查這個伺服器狀態。

圖示 ​

檢驗伺服器圖示

  • 如圖,在玩家點擊“開始遊戲”按鈕時,調用該接口,檢驗玩家選擇的伺服器狀態。

函數 ​

  • 函數1:
java
public static void gamedreamerCheckServer(Context context,HashMap<String,String> map,GamedreamerCheckServerListener gamedreamerCheckServerListener)
  • 函數2:
java
public static void gamedreamerCheckServer(final Context context,final HashMap<String,String> map, GamedreamerCheckServerControlByGameListener gamedreamerCheckServerListener)
  • 函數1說明:監聽器只在檢驗伺服器狀態為正常的時候觸發回調方法。sdk內部會在檢驗失敗的時候彈出dialog提示玩家。
  • 函數2說明:在遊戲需要在檢驗失敗的時候做相關邏輯處理的時候調用該接口。該方法的監聽器在檢驗伺服器成功和失敗時都會觸發相關的回調方法。調用該函數,sdk內部不會處理檢驗失敗時的情況,遊戲需要自己提示玩家。
  • 兩個函數根據遊戲需要調用其中一個即可。無論接入哪個函數,都只能在檢驗伺服器成功的回調方法中進入遊戲

函數1參數說明 ​

參數說明
contextContext上下文。
mapmap裡面需要傳入GDValues.USERID和GDValues.SERVERCODE兩個參數,值分別為SDK用戶Id以及需要檢查狀態的伺服器的serverCode。
v1.5.38後可省略GDValues.USERID。
gamedreamerCheckServerListener檢驗伺服器監聽器。

onCheckServer回調說明 ​

GamedreamerCheckServerListener.onCheckServer回調方法說明:

  • 在檢驗到伺服器狀態為正常的時候回調。方法返回參數說明:
參數說明
server檢驗狀態正常的伺服器信息。(遊戲中要保存該Server對象信息,使用該Server對象覆蓋登錄時或玩家切換伺服器時保存的Server對象信息。)

示例代碼 ​

java
// 必接:调用GDSDK检验伺服器接口,请务必确保该接口在玩家点击“进入游戏”的时候调用
HashMap<String, String> map = new HashMap<String, String>();
map.put(GDValues.USER_ID, gdUser.getUserId());
map.put(GDValues.SERVER_CODE, gdServer.getServercode());
GDSDK.gamedreamerCheckServer(this, map, new GamedreamerCheckServerListener() {
				
	@Override
	public void onCheckServer(Server server) {
		// 检验伺服器状态为正常,在该回调中进入游戏页面
	}
});

函數2參數說明 ​

參數說明
contextContext上下文。
mapmap裡面需要傳入GDValues.USERID和GDValues.SERVERCODE兩個參數,值分別為SDK用戶Id以及需要檢查狀態的伺服器的serverCode。 ; v1.5.38後可省略GDValues.USERID。
gamedreamerCheckServerControlByGameListenerr檢驗伺服器監聽器。

回調說明 ​

GamedreamerCheckServerListener.GamedreamerCheckServerControlByGameListenerr回調方法說明:

  • onCheckServerSuccess(Server server)回調方法:在檢驗伺服器狀態為正常的時候回調。(遊戲中要保存該Server對象信息,使用該Server對象覆蓋登錄時或玩家切換伺服器時保存的Server對象信息。)onCheckServerFail(String failMsg)回調方法:在檢驗伺服器狀態不正常或檢驗失敗的時候回調。failMsg為失敗信息。

示例代碼 ​

java
// 必接:调用GDSDK检验伺服器接口,请务必确保该接口在玩家点击“进入游戏”的时候调用
HashMap<String, String> map = new HashMap<String, String>();
//map.put(GDValues.USER_ID, gdUser.getUserId());
map.put(GDValues.SERVER_CODE, gdServer.getServercode());
GDSDK.gamedreamerCheckServer(this, map, new GamedreamerCheckServerControlByGameListener() {
				
	@Override
	public void onCheckServerSuccess(Server server) {
		// 检验伺服器状态正常,在该回调中进入游戏页面
		Intent intent = new Intent(BeginActivity.this, GameActivity.class);
		intent.putExtra(GDValues.USER, gdUser);
		intent.putExtra(GDValues.SERVER, server);
		startActivity(intent);
		BeginActivity.this.finish();
	}
				
	@Override
	public void onCheckServerFail(String failMsg) {
		// 检验伺服器状态不正常,可在这里处理游戏相关逻辑,不可进入游戏页面。failMsg为错误信息
		Toast.makeText(BeginActivity.this, failMsg, Toast.LENGTH_LONG).show();
	}
});