在 Android 中从 signalR 调用服务器端函数
Calling server side function from signalR in Android
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"));
和
private Action<Void> addSession(String sessionID) {
//hubProxy. [server is not available here]
}
在javascript中,我试过如下,
$.connection.hub.start().done(function () {
addSession(sessionId)
});
function addSession(sessionId) {
proxy.server.addSession(sessionId)
.done(function () {
isHubConnected = true;
}
);
}
在 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;
}
我收到以下错误消息,
InvalidStateException: The operation is not allowed in the 'Connecting' state
在 javascript 中您正在使用自动代理。
但在 android 中您使用的是手动代理
两者在行为上有所不同。
喜欢
使用自动代理调用服务器端方法
proxy.server.addSession(sessionId)
使用手动代理调用服务器端方法
proxy.invoke("addSession", sessionId)
您可以在此找到更多信息 link
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"));
和
private Action<Void> addSession(String sessionID) {
//hubProxy. [server is not available here]
}
在javascript中,我试过如下,
$.connection.hub.start().done(function () {
addSession(sessionId)
});
function addSession(sessionId) {
proxy.server.addSession(sessionId)
.done(function () {
isHubConnected = true;
}
);
}
在 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;
}
我收到以下错误消息,
InvalidStateException: The operation is not allowed in the 'Connecting' state
在 javascript 中您正在使用自动代理。
但在 android 中您使用的是手动代理
两者在行为上有所不同。
喜欢
使用自动代理调用服务器端方法
proxy.server.addSession(sessionId)
使用手动代理调用服务器端方法
proxy.invoke("addSession", sessionId)
您可以在此找到更多信息 link