Asp.net
我可以同時合併 SignalR 和 RESTful API 嗎?
我有一個使用 ASP.NET 開發的單頁 Web 應用程序。我最近使用SignalR庫將許多 Web 方法轉換為基於推送的方法。這確實大大加快了頁面速度,並減少了來自頁面的大量伺服器呼叫。
同時,我也一直在研究一些伺服器端方法的 RESTful ASP.NET WebAPI,真正的優點是它允許在我開發的同時為外部應用程序創建 API核心應用程序(這對我正在做的事情很重要)。
然而,在看了幾篇文章和這 兩個問題之後,push 和 WebAPI 方法似乎是兩種完全不同的客戶端-伺服器通信範式。我確信我可以創建可以通過任一協議訪問的各種方法,但我不確定這是否存在陷阱或者這是否被認為是草率 - 也許有一種更優雅的方式來實現我的目標為了。
在某些情況下,我希望 RESTful WebAPI 通過 SignalR 集線器廣播事件……相反的情況(SignalR 曾經需要訪問 WebAPI)似乎不太可能,但我認為仍有可能。
有人做過嗎?有沒有人對如何進行有任何建議或提示?這裡最優雅的前進方式是什麼?
看看這篇博文中的影片。它準確地解釋瞭如何將 WebAPI 與 SignalR 一起使用。
本質上,Web API + SignalR 集成包含在此類中:
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; } } }就這樣。:)