2017-10-20 29 views
0

Je suis nouveau à la bibliothèque SignalR et le manque de documentation sur Microsoft's website dans Android n'aide pas vraiment. J'essaie d'invoquer une méthode sur le serveur en utilisant ce code:comment utiliser invoke sur HubProxy signalr android

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

     } 
    }); 

Mais le résultat du serveur ne void et changer Action<Void> à <Object> donne une erreur. Comment puis-je obtenir une réponse de invoke qui n'est pas vide?

La partie init:

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; 
    } 

Répondre

0

Apparemment, cela est la façon dont vous le faites (résultat de réception comme String):

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

     } 
    });