我有一个使用 ASP.NET 开发的单页 Web 应用程序。我最近使用SignalR将许多网络方法转换为基于推送的方法。图书馆。这确实大大加快了页面速度,并减少了页面的大量服务器调用。
同时,我也一直在研究 RESTful ASP.NET WebAPI 的一些服务器端方法,其真正的优点在于它允许在为外部应用程序创建 API 的同时我开发核心应用程序(这对我正在做的事情很重要)。
然而,在看了几篇文章和these之后two问题是,推送和 WebAPI 方法似乎是客户端-服务器通信的两种完全不同的范例。我确信我可以创建可以通过任一协议(protocol)访问的各种方法,但我不确定这是否存在陷阱或者这是否被认为是草率的——也许有一种更优雅的方法来实现我的目标为了。
在某些情况下,我确实希望 RESTful WebAPI 通过 SignalR 集线器广播事件...相反的情况(SignalR 需要访问 WebAPI)似乎不太可能,但我认为仍然有可能。
有人做过吗?有人对如何进行有任何建议或提示吗?这里最优雅的前进方式是什么?
最佳答案
看一下这个 blog post 的视频。它准确地解释了如何将 WebAPI 与 SignalR 结合使用。
本质上,Web API + SignalR 集成在于 class :
public abstract class ApiControllerWithHub<THub> : ApiController
where THub : IHub
{
Lazy<IHubContext> hub = new Lazy<IHubContext>(
() => GlobalHost.ConnectionManager.GetHubContext<THub>()
);
protected IHubContext Hub
{
get { return hub.Value; }
}
}
仅此而已。 :)
关于asp.net - 我可以合并 SignalR 和 RESTful API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12368800/