Javascript 在Android中从signer调用服务器端函数

Javascript 在Android中从signer调用服务器端函数,javascript,android,signalr,Javascript,Android,Signalr,SignalR在Android中连接,但我想调用服务器上可用的函数 我尝试了以下代码 String host = "Host URL"; HubConnection hubConnection = new HubConnection(host, "", false, new Logger() { @Override public void log(String message, LogLevel level) { System.ou

SignalR在Android中连接,但我想调用服务器上可用的函数

我尝试了以下代码

String host = "Host URL";
    HubConnection hubConnection = new HubConnection(host, "", false, new Logger() {
        @Override
        public void log(String message, LogLevel level) {
            System.out.println("message - " + message);
        }


    });

    hubProxy = hubConnection.createHubProxy("Task");
    SignalRFuture<Void> signalRFuture = hubConnection.start().done(addSession("Session ID"));
在javascript中,这非常有效,但在android中:(

更新

通过像AnikIslamAbhi的回答一样尝试

signalRFuture = hubConnection.start().done(addSession("sessionID"));

private Action<Void> addSession(String sessionID) {
    System.out.println("addSession : " + sessionID);
    hubProxy.invoke("addSession", sessionID);
    return null;
}

在javascript中,您使用的是自动代理

但在android中,您使用的是手动代理

proxy.invoke("addSession", sessionId)
两者在行为上都有差异

使用自动代理调用服务器端方法

proxy.server.addSession(sessionId)
使用手动代理调用服务器端方法

proxy.invoke("addSession", sessionId)

您可以在此找到更多信息

好的,我认为这会起作用,但是当我调用它时,我收到了以下错误消息。
InvalidStateException:该操作不允许处于“连接”状态
。您能猜到,这里出了什么问题吗?hubProxy.invoke(“addSession”,sessionID)。done(新操作(){@Override public void run(void obj)抛出异常{System.out.println(“SENT!”);}})添加这个,然后告诉我发生了什么//订阅连接的事件hubConnection.connected(new Runnable(){@Override public void run(){System.out.println(“CONNECTED”);}});检查连接是否成功完整此未连接bro也未发送。我已在那里添加了logcat消息。
proxy.server.addSession(sessionId)
proxy.invoke("addSession", sessionId)