SignalR:从javascript连接到一个集线器,而不是连接到所有集线器

时间:2013-07-11 14:59:10

标签: signalr signalr-hub

以下将js客户端连接到所有现有的集线器:

$.connection.hub.start({ transport: 'longPolling' }).done(function () {});

是否有某种方法可以连接到某个特定的集线器?

如果没有,那么“OnConnected()”和“OnDisconnected()”在每个集线器中有什么意义?如果所有这些都将被调用。

我问这是因为有一个特定的html(类似于新闻提要)我想要处理来自一个中心的通知(当发布新闻时,此视图应该处理并显示它们出现)。我将使用群组,但在集线器中将其分开似乎更自然。

3 个答案:

答案 0 :(得分:2)

您只订阅了与您有关联的客户端事件的集线器。所以假设你有两个中心:

  1. HUBA
  2. hubB
  3. 在您的客户中,如果您有:

    var hubA = $.connection.hubA;
    
    hubA.client.foo = function() {};
    
    $.connection.hub.start();
    

    您只会订阅hubA(而不是hubB)上的活动。

答案 1 :(得分:0)

您可以选择在您创建的任何集线器中使用或不使用连接事件。您当然可以使用集线器将您的代码分成逻辑部分,不会有任何损害。

答案 2 :(得分:0)

var connection = $.hubConnection(server);
var someHub= connection.createHubProxy("someHub");
connection.start({transport: 'longPolling'}).done(function () {})