是否可以在ASP.NET WebAPI中实现数据库支持的推送通知

时间:2014-03-29 22:58:25

标签: asp.net iis asp.net-web-api push-notification signalr

我正在处理客户端和服务器应用程序,其中客户端请求客户端特定的'来自服务器的数据。我计划切换到服务器的ASP.NET WebAPI,以便客户端可以利用可用的.NET API来查询服务器的数据。

当客户端最初连接并从服务器请求数据时,此方案工作正常,但是,不是客户端不断轮询数据,它应该只建立持久连接,服务器应该能够监视数据库的更改并推送具有陈旧数据的客户端的新数据。我遇到了SignalR并发现它可以与WebAPI一起使用,但无法弄清楚如何将其与数据库监控集成,即一直在监控数据库以进行更新的线程或进程。有解决方案吗我也对其他非基于WebAPI的.NET技术持开放态度 - 基本上是基于.NET的,这将缩短开发时间。

2 个答案:

答案 0 :(得分:0)

ASP.NET Web API支持PushStreamContent。看一下" Push Content"在http://blogs.msdn.com/b/henrikn/archive/2012/04/23/using-cookies-with-asp-net-web-api.aspx。这里,计时器触发写入流的内容,但您可以使用它来轮询数据库并写入响应或构建其他更好的机制

答案 1 :(得分:0)

signalR可以满足您的要求。您可以向所有用户或仅部分用户广播消息。您的客户端可以是浏览器(使用javascript)或.net客户端(WPF或其他)。 从服务器,您可以在客户端上调用方法

Clients.All.MyMethodOnTheClient(param1, param2)

Clients.Client(connectionId).MyMethodOnTheClient(param1, param2)

该主题过于宽泛,无法在5分钟内回答。我可以建议你to start here. 然后浏览the server api guide,javascript指南和.net客户端指南。 别担心。完成一次完整的旅行非常快。