如何在多租户应用程序中定义signalR MapHub路由

时间:2018-08-05 23:43:35

标签: signalr asp.net-core-signalr

SignalR ChatHub被定义为控制器。

MsgBox ("Welcome " & EmplFname.Text)

在启动配置方法中,

[Route("{tenantName}/chatHub")]
public class ChatHub: Hub

这在开发环境中很好用。

我的问题是,如何定义useSignalR方法,以使mapHub路径独立于租户,或者有一种不同的定义方式,以便像app.UseSignalR(routes => { routes.MapHub<MessageHub>("/dev/chatHub"); }); 这样的所有租户工作?

2 个答案:

答案 0 :(得分:1)

我已通过以下方式处理了该问题; 创建的chatHub控制器没有

这样的租户
[Route("/chatHub")]
public class ChatHub: Hub

并在startup.cs中定义为

app.UseSignalR(routes =>
 {
     routes.MapHub<ChatHub>("/chatHub");
 });

因此,这种方式的常见实例是处理所有租户调用,并通过诸如此类的方法参数来标识租户

公共异步任务SendMessage(字符串租户,字符串消息) {    ... }

答案 1 :(得分:0)

我一直在研究这个问题,如果您使用Finbuckle作为多租户库,则可以使用以下内容指定您的路线

app.UseSignalR(routes =>
{
     routes.MapHub<ChatHub>("/{__tenant__}/chatHub");
});