集线器启动-等待完成



我使用SignalR将命令从客户端传输到服务器,而不刷新页面。当客户端进入我的一些网页时,我正在启动一个新的集线器连接。像这样:

var hub = $.connection.siteControllerHub;
$.connection.hub.start();

这个"start()"函数需要一些时间(+-5秒)。同时,页面已经完成加载,用户开始使用我的UI。SingalR在完成加载连接之前无法为用户提供服务。

我知道我可以使用done()寄存器的异步方法:

$.connection.siteControllerHub.start().done(function () {
    // On finish loading...
});

但是这种操作不适合我,因为如果我使用这个-我需要禁用UI,直到发生这个事件。这一点也不酷。

我更喜欢加载页面需要更长的时间,但当它完成后,一切都可以使用了。

你觉得怎么样?你建议如何实施它?非常感谢。

5秒是不正常的。无论如何,您可以对消息进行排队,当调用done时,将排队的消息发送到服务器。看看这里的例子

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/blob/aa239a7bb9d79346cacd16ea1ee97946b2d5d44b/SignalR.EventAggregatorProxy.Client.JS/signalR.eventAggregator.js#L165

相关内容

最新更新