2015-02-24 39 views
0

我正在使用Photon Servermultiplayer遊戲。我發送發送一些數據使用HashMaps通過loadBalancingPeer.opRaiseEvent但我無法獲得onEvent功能LoadBalancingClient中的數據。如何在'Photon服務器'的`onEvent()`中獲得`EventData`

這是我的自定義事件代碼。

public void sendSomeEvent(int playerPosition) { 

     HashMap<Object, Object> eventContent = new HashMap<Object, Object>(); 
     eventContent.put("key1", "ABC"); 

     this.loadBalancingPeer.opRaiseEvent((byte) 1, eventContent, false, 
       (byte) 0); // this is received by OnEvent() 
    } 

這裏是onEvent()的代碼。

@Override 
public void onEvent(EventData eventData) { 
    super.onEvent(eventData); 

    switch (eventData.Code) { 
    case (byte) 1: 
     String value = (String) eventData.Parameters 
       .get("key1"); 
     ApplicationManager.onEventReceived(ab); 
     break;  
    } 
    // update the form/gui 
    ApplicationManager.onClientUpdateCallback(); 
} 

在此功能中我得到null價值,但它表明以這種形式{-11={key1=ABC}, -2=1} patameter數據。 請幫我在哪裏我錯了。 在此先感謝。

+0

你在哪裏使用值變量 – 2015-02-24 12:20:56

+0

你在地圖上添加'-11'的位置? – 2015-02-24 12:21:01

+0

@ρяσѕρєяK我也很困惑它爲什麼顯示這種格式的值,我不發送'-11'或'-2'。 – 2015-02-24 12:23:06

回答

1

我沒有使用光子,但看過API文檔後,我認爲你做錯了事。 EventData也是一種Map。

在引發事件的情況下eventData.Code值實際上應該是OpertationCode.RaiseEvent以及活動(byte) 1將與地圖鍵EventCode.Code映射。

在此EventData中,事件代碼使用密鑰EventCode.Code進行映射,並且您的數據使用密鑰ParameterCode.Data進行映射。

因此...爲了讓您發送的散列表從EventData中刪除,您需要執行eventData.get(ParameterCode.Code)

我認爲以下應該工作正常。嘗試一下,並給我一個詳細的錯誤日誌,如果這不起作用。

switch (eventData.Code) { 
    // If it is a RaiseEvent 
    case OperationCode.RaiseEvent: 
     switch (eventData.get(EventCode.Code)) { 
      // If it is your event. 
      case (byte) 1: 
       HashMap< Object, Object > map = (HashMap<Object, Object>) eventData.get(ParameterCode.Data); 

       HashMap< String, String > smap = new HashMap< String, String >(); 
       for(Object key : map.keySet()) { 
        smap.put((String) key, (String) map.get(key)); 
       } 
       // Now smap is the HashMap<String, String> that you sent. 
       // do something 
       break; 
     } 
     break; 
} 

注::現在我非常有信心它應該工作。

+0

非常感謝。這是工作。 – 2015-02-25 17:52:12