我想知道是否可以将 SignalR的 Hub
(s)放在与 Asp.Net 项目不同的项目中?如果是的话。如何访问Hub
课程?
提前致谢。
答案 0 :(得分:4)
据我所知,不可能将SignalR Hub放在ASP.NET项目以外的任何地方,因为SignalR建立在ASP.NET框架上,并且位于ASP.NET命名空间内。我没有发现任何相反的说法。
但是,由于集线器不需要在同一个项目中为客户端可访问,因此任何.NET或Java脚本客户端都可以使用适当的配置连接到集线器。 / p>
此链接说明了JavaScript客户端的工作原理: http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client
如果您没有使用.NET客户端连接,但是,例如,外部网站,请进入“跨站点参考”部分: http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-javascript-client#crossdomain
此链接说明了.NET客户端(如Windows应用商店应用,Silverlight,WPF和控制台应用程序)的工作方式: http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-net-client#clientsetup
看到你试图在一个不是ASP.NET的单独项目中访问集线器,我怀疑你使用某种形式的.NET客户端。先前的链接说明了如何配置这些连接。
因此,例如,如果您构建.NET客户端(例如Windows应用商店应用程序),它仍然可以在发布时访问位于ASP.NET项目中的SignalR Hub,从而允许任何实时功能在客户端就像客户端在同一个ASP.NET项目中一样。