我有多个使用SignalR的Web应用程序,生成不同的本地集线器。
我想知道,是否可以将服务器URL提供给应用程序 A ,以便它直接在中央服务器上生成本地SignalR集线器,然后应用程序 B 可以直接从服务器引用生成的集线器,而不是在应用程序 B 上创建代理来收听应用程序 A 广播?
public class ApplicationA : Hub //https://applicationAurl
{
public void SendFromApplicationA(string name, string message)
{
Clients.All.addMessage(name, message);
}
}
public class ApplicationB : Hub //https://applicationBurl
{
public void SendFromApplicationB(string name, string message)
{
Clients.All.addMessage(name, message);
}
}
因此,如果这些集线器是在服务器而不是母应用程序上创建的,那么应用程序 C 应该能够在客户端监听,如下所示。
$.connection.hub.url = "http://centralisedserver/signarl";
$.connection.hub.start();
var SendFromApplicationAHub= $.connection.applicationA;
SendFromApplicationAHub.client.SendFromApplicationA = function () {//do something}
var SendFromApplicationBHub= $.connection.applicationB;
SendFromApplicationBHub.client.SendFromApplicationB = function () {//do something}