2017-10-20 169 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 { 

     } 
    });