我有一个包含以下项目的解决方案:
*Web API 和 MVC 项目运行在不同的端口上
SignalR 在 API 和 MVC 项目中都会被调用,并且当来自 MVC 的调用时工作正常(UI 已更新)。然而,尽管我已经在 API 中的 MVC 项目启动文件中实现了我所做的一切,并且还激活了 CORS,但从 API 发送的任何消息都不会反映在 MVC 中。
需要您的帮助(可能通过示例源代码来更好地理解案例)。
您的解决方案下有四个项目,其中
service layer
(包含SignalR)用作类似的公共包,以减少编写重复代码的需要并在需要时直接引用它。非常好,而且可行。
SignalR client
和SignalR server
的概念。
ASP.NET CORE SignalR 服务器
包含 Hub 类并将注册信号中间件的项目,并将使用
app.MapHub<MainHub>("/mainhub");
。该项目是信号服务器。
在您的场景中,确保只有 MVC 项目引用
service layer
(包括 SignalR)。然后使用app.MapHub
方法进行注册和使用。
您的API项目不需要添加
service layer
引用,它应该是
信号客户端通过使用.net sdk。然后它可以将消息发送到集线器。