我有一个使用ASP.NET开发的单页Web应用程序 . 我最近使用SignalR库将许多Web方法转换为基于推送的方法 . 这真的大大增加了页面,减少了页面上的大量服务器调用 .
与此同时,我也一直在寻找RESTful ASP.NET WebAPI的一些服务器端方法,真正的美妙之处在于它允许在我开发的同时为外部应用程序创建API . 核心应用程序(这对我正在做的事情很重要) .
然而,在看了几篇文章和问题之后,似乎推送和WebAPI方法似乎是两种完全不同的客户端 - 服务器通信范例 . 我不确定是否存在陷阱或者这是否被认为是草率的 - 可能有's a more elegant way to achieve what I' m目标 .
在某种情况下,我希望RESTful WebAPI通过SignalR集线器广播事件......相反(SignalR需要访问WebAPI)似乎不太可能,但我认为仍然可能 .
有没有人这样做过?有没有人对如何进行有任何建议或提示?这里最优雅的方式是什么?
3 回答
看看这个blog post的视频 . 它解释了如何将WebAPI与SignalR结合使用 .
本质上,Web API SignalR集成包含在_1307462中:
就这样 . :)
SignalR实际上已经整合到WebAPI源vNext(4.1)中 .
如果您不使用RTM构建,而是从Codeplex中获取构建,您会看到有一个名为
System.Web.Http.SignalR
的新项目,您可以使用它 . 它是几天前添加的这个提交 - http://aspnetwebstack.codeplex.com/SourceControl/changeset/7605afebb159示例用法(如提交中所述):
如果您现在不想切换到vNext,您可以随时使用该代码进行参考 .
这个实现与Brad Wilson在NDC奥斯陆展示的内容非常相似(更为精致,包括测试等) - http://vimeo.com/43603472
这是一个显示两种技术集成的视频http://channel9.msdn.com/Events/TechDays/Belgium-2013/25,这里有一个用于集成的NuGet包https://www.nuget.org/packages/Microsoft.AspNet.WebApi.SignalR/