SignalR在管理项目中显示在线用户

时间:2017-05-16 08:19:02

标签: asp.net asp.net-mvc signalr

我的解决方案包含多个类库和两个web(ui)项目(Web和Admin)。

My Hubs位于一个类库中,两个ui项目可以访问它。

如何在ADMIN项目中显示WEB项目的在线用户

1 个答案:

答案 0 :(得分:2)

如果您有两个位于不同AppDomain中的单独项目,则Hub必须存在于两个项目之一中。例如,如果您将Web项目加载为https://web.azurewebsites.net而管理员加载为https://admin.azurewebsites.net,则如果您在每个中实例化Hub,则将有两个单独的集线器。如果我了解您的要求,这不是您想要做的。

相反,你应该在两个中的一个中加载你的Hub,我认为它将是web项目。 admin项目可以将自己设置为SignalR客户端。然后,Web项目中的Hub可以基于SignalR onConnect和onDisconnect方法将更新的用户计数发送到Admin项目,就像Luke建议的那样。

就此而言,如果admin项目除了从SignalR获取用户计数之外不需要任何其他功能,您可以将您的Hub放在Web项目中,让Web项目调用admin项目中的WebAPI方法来更新用户计数。

我对你的解决方案做了很多假设。如果我错了,请告诉我,我会修改或删除这篇文章。