2017-10-20 109 views
0

我是SignalR庫的新手,在Android上缺少文檔並不真正有幫助。我試圖調用一個方法使用此代碼在服務器上:如何在HubProxy信號上使用invoke android

mHubProxy.invoke("method", "params...").done(new Action<Void>() { 
     @Override 
     public void run(Void aVoid) throws Exception { 

     } 
    }); 

但來自服務器的結果不是void,改變Action<Void><Object>給出了一個錯誤。 如何獲得invoke的回覆並非無效?

初始化部分:

Platform.loadPlatformComponent(new AndroidPlatformComponent()); 
    String serverUrl = "server"; 
    mHubConnection = new HubConnection(serverUrl); 
    String SERVER_GET_TOKEN = "name"; 
    mHubProxy = mHubConnection.createHubProxy(SERVER_GET_TOKEN); 
    ClientTransport clientTransport = new ServerSentEventsTransport(mHubConnection.getLogger()); 
    Credentials credentials = new Credentials() { 
     @Override 
     public void prepareRequest(Request request) { 
      request.addHeader("Authorization", token); 
     } 
    }; 
    mHubConnection.setCredentials(credentials); 
    SignalRFuture<Void> signalRFuture = mHubConnection.start(clientTransport); 

    try { 
     signalRFuture.get(); 
    } catch (InterruptedException | ExecutionException e) { 
     Log.e("SimpleSignalR", e.toString()); 
     return; 
    } 

回答

0

顯然,這是你如何做到這一點(接收結果作爲字符串):

mHubProxy.invoke(String.class, "param1", "param2").done(new Action<String>() { 
     @Override 
     public void run(String aVoid) throws Exception { 

     } 
    });