我有这样的场景。SignalR - OWIN - 多个端点
模块派生自的基类。
每个模块都有自己的信号集线器。
我想将所有模块托管在单个主机中,并以模块名称分隔。
某些模块将共享中心名称。
namespace domain.com.base
{
public class BaseClass
{
public string ApplicationName;
}
}
namespace domain.com.billing
{
public class Billing : BaseClass
{
ApplicationName = "Billing";
}
public class NotificationHub : Hub
{
public void Credit(decimal amount)
{
Clients.All.Notify(amount);
}
}
}
namespace domain.com.reporting
{
public class Reporting : BaseClass
{
ApplicationName = "Reporting";
}
public class ReportingHub : Hub
{
public Report GetReport(int Id)
{
return ReportModule.RetrieveReport(Id);
}
}
}
在OWIN.Startup.Configuration(IAppBuilder)是有可能做这样的事情,例如
namespace domain.com.external_access
{
public void Configuration(IAppBuilder app)
{
var asmList = GlobalResolver.Applications();
foreach(var asm in asmList)
{
app.MapSignalR(asm.ApplicationName,false);
}
}
}
有效地给你的东西,像这样......
http://domain.com.external_access/Reporting/hubs http://domain.com.external_access/Billing/hubs
你有没有尝试过:'app.MapSignalR(“/ Reporting/signalr”); app.MapSignalR(“/ Billing/signalr”); ...'? – Pawel 2015-03-02 21:15:51
但是,如果两个终端都不能解决同一个中心问题,那将会很棒。 – 2015-03-03 06:50:25