在SignalR的客户端设置状态变量
本文关键字:状态 变量 设置 客户端 SignalR | 更新日期: 2023-09-27 18:09:08
我正在使用javascript库连接到托管在控制台应用程序中的signalR服务器。
因此,我连接和设置客户端方法,可以从服务器调用,像这样:
var connection = $.hubConnection('http://localhost:8080'),
proxy = connection.createHubProxy('TestApp');
proxy.on('sendMessage', function () {
// do stuff!
});
,这里有详细描述。
然而,以这种方式使用客户端javascript的文档并没有解释如何往返信息(在客户端设置'state'变量并使其从服务器访问)。
这可能很明显,但任何帮助将非常感激!
还有一件事我觉得与之密切相关,我很好奇。我知道客户端代码可以像这样在服务器上调用函数后获得返回值/回调(从上面链接的文档)
proxy.invoke('add', 1, 2)
.done(function(result) {
console.log('The result is ' + result);
});
但是当客户端完成任务时,服务器是否可能从客户端获得回调?(显然,只需让客户端触发一个预定义的事件就可以解决这个问题,但如果可能的话,处理所有回调而不必设置另一个事件会更好。)
谢谢! !
1)设置状态就像这样简单:
proxy.state.foo = 1337;
当然你可以通过
在服务器上获取这个int myFoo = Clients.Caller.foo;
2) 不,当客户端函数完成执行时,服务器上无法通知您。如果你想知道客户端函数什么时候完成,你可以自己回调到服务器端。
例如:proxy.on('foo', function(){
console.log("Foo executed");
proxy.invoke("fooDone");
});
然后你需要在服务器上创建一个"fooDone"函数来处理回调。
希望这对你有帮助!