我的解决方案包含多个类库和两个web(ui)项目(Web和Admin)。
My Hubs位于一个类库中,两个ui项目可以访问它。
如何在ADMIN项目中显示WEB项目的在线用户
答案 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方法来更新用户计数。
我对你的解决方案做了很多假设。如果我错了,请告诉我,我会修改或删除这篇文章。