首页 > 解决方案 > 带有signalR的角度:多个集线器连接到同一条路线

问题描述

我的客户代码如下。我有一个信号器路由和集线器连接名称。我能够连接到集线器并获取事件。现在,我需要为同一条路线再连接一个集线器以获取更多事件。

  this.hubConnection = this.window.$.hubConnection();
    this.hubConnection.url = this.apiUrl  + "api/signalr";
    this.hubProxy = this.hubConnection.createHubProxy("Event1Hub");
    this.hubProxy = this.hubConnection.createHubProxy("Event2Hub"); // When I add this line it is overriding first hub and only connecting to Event2Hub.

我正在使用“signalr”:“2.3.0”,

标签: angularangular5signalrsignalr-hubsignalr-2

解决方案


您正在创建一个代理Event1Hub,然后使用代理重新评估该对象实例Event2Hub。如果您想与两个集线器进行通信,则必须初始化单独的代理对象才能使其正常工作。

this.hubConnection = this.window.$.hubConnection();
this.hubConnection.url = this.apiUrl  + "api/signalr";
this.hubEvent1Proxy = this.hubConnection.createHubProxy("Event1Hub");
this.hubEvent2Proxy = this.hubConnection.createHubProxy("Event2Hub");

这种方式hubEvent1Proxy将提供Event1Hub通信,同时hubEvent2Proxy将提供Event2Hub通信。


推荐阅读