【发布时间】:2015-02-03 08:15:39
【问题描述】:
我正在设计一个数据库监控应用程序。基本上,数据库将托管在云中,并通过 Windows、iOS、Android 等的自定义编写客户端提供对它的记录级访问。基本场景可以通过 Web 服务 (ASP.NET WebAPI) 实现。例如,客户端将向 Web 服务发出 GET 请求以获取条目。但是,其中一个要求是客户端应该自动刷新 UI,以防另一个用户(使用客户端的不同实例)更新相同的记录,并且自动刷新需要在更新记录的一秒内发生 - 这样信息始终是最新的。
轮询可能是一种选择,但活动客户端的数量可能有数十万,因此我正在寻找一种更强大、更轻量级(在服务器上)的解决方案。我精通 .NET 和 C++/Windows,我可以使用 IO Completion Ports 在 C++/Windows 中推出一个完整的解决方案,但我觉得这太过分了,需要太多的开发时间。查看 ASP.NET WebAPI 但无法发送通知是它的限制。 Windows 生态系统中是否有任何框架/技术可以解决这种情况并轻松扩展? Windows 生态系统之外的任何好的选择,例如node.js?
【问题讨论】:
-
SignalR?让 WebAPI 的 POST 向所有连接的客户端推送通知,告知他们要刷新数据。
-
SignalR 是各种其他技术 websocket、轮询等之上的一个层。我正在寻找一个较低级别的解决方案。找到 PushStreamContent,但无法确定它是否会扩展到数十万个连接。有什么想法吗?
-
基于用户 SignalR 或 Node.Js 的解决方案。分析股票交易应用程序。
-
客户端类型、网页或独立应用程序是什么?
-
@Steve 客户端将是移动和桌面应用程序,使用 C# 或 C++ 编写。
标签: asp.net web-services asp.net-web-api distributed iocp