SignalR 通知 asp.net 和 Web api 客户端托管在单独的站点上
SignalR notifying both asp.net and web api clients host on separate site
我要构建自己的系统,包括 asp.net 网站和网站 api,它们位于不同的站点上。如下图 link 所示的架构图。
每次客户端更新一些东西。我需要通知其他人。例如,如果客户端 1 通过网络上传照片,则客户端 3 和(移动应用程序)和客户端 4(桌面应用程序)应该收到通知。
我的问题是在这种情况下如何告诉 SignalR 向客户端发送通知。请指教
必须更改您的图表才能实现您的需要。
为了使其正常工作,所有客户端类型都必须支持 SignalR。对于 Web 应用程序,它很简单,因为 "client" 代码就是网站代码本身。
对于移动和桌面,您有一个额外的层 (webapi),在这种情况下这是一个障碍。
您应该定义一个 SignalR 集线器并从所有客户端连接到它:WebApp、MobileApp、DesktopApp。
了解这一点,您可以制作一个包含所有 API 方法和 SignalR 集线器的 WebAPI 项目,并从其他应用程序(包括网站)连接到它。
据我所知,这是完成这项工作的唯一方法,因为您需要在所有客户端代码中包含 SignalR 库,并使用它与集线器进行通信。
我要构建自己的系统,包括 asp.net 网站和网站 api,它们位于不同的站点上。如下图 link 所示的架构图。
每次客户端更新一些东西。我需要通知其他人。例如,如果客户端 1 通过网络上传照片,则客户端 3 和(移动应用程序)和客户端 4(桌面应用程序)应该收到通知。 我的问题是在这种情况下如何告诉 SignalR 向客户端发送通知。请指教
必须更改您的图表才能实现您的需要。
为了使其正常工作,所有客户端类型都必须支持 SignalR。对于 Web 应用程序,它很简单,因为 "client" 代码就是网站代码本身。
对于移动和桌面,您有一个额外的层 (webapi),在这种情况下这是一个障碍。
您应该定义一个 SignalR 集线器并从所有客户端连接到它:WebApp、MobileApp、DesktopApp。
了解这一点,您可以制作一个包含所有 API 方法和 SignalR 集线器的 WebAPI 项目,并从其他应用程序(包括网站)连接到它。
据我所知,这是完成这项工作的唯一方法,因为您需要在所有客户端代码中包含 SignalR 库,并使用它与集线器进行通信。