我正在为一个将呈现用户活动(登录、照片等)的实时更新(如 Facebook)的项目确定架构选项。其中两个主要的 UI 组件是一个自动更新滚动区域,其中将列出新的通知(照片等),以及一个工具栏,该工具栏将使用更新的消息计数等内容进行更新。
这方面的竞争者是基于 Jabber/Comet/XMPP 和 WebSocket 技术。
彗星营地:
WebSockets 阵营:
由于现有的基础架构是 Microsoft 堆栈,因此我宁愿不将基于 Java 的服务器引入其中。说到这里,就留下了(非常吸引人的)WebSync(彗星)和SuperWebSocket(WebSockets)。然而,Pokein 的 DLL 集成也相当无缝地集成到 .Net 项目中。
.Net 是否有更真实的生产级 WebSocket 计划?在 Microsoft 堆栈上采用 WebSockets 是否为时过早,我应该支持 Kazing 之类的东西吗?
我仍在等待关于我们当前用户群的浏览器类型和版本的报告(检查 HTML5 兼容性)。我怀疑这个数字会很低(老用户群)。如果是这样的话,彗星选项将是赢家。
还有哪些需要考虑的事情?
看看一些 .Net 计划,如 Sockets.IO 等,我认为这可能还处于起步阶段,无法应用于大规模生产系统。
我可以从使用过上述任何技术和产品的任何人那里获得一些意见吗?
谢谢。
更新
我仍在寻找一些在生产级别上可靠的优质 WebSocket 服务器。在最近找到 XSockets 和 SignalR 之后,我将它们添加到了 Websockets 阵营。然而,此时仍有两个主要竞争者。这可能只是因为他们拥有非常出色的营销团队、可供开发人员使用的优质材料——API 和视频。许多其他实现似乎仍处于新生阶段,其中给出了仅与少数客户端连接的示例。虽然这演示了该技术,但这些演示没有大量有效载荷/负载容量数据支持。Kaazing 和 LightStreamer 确实满足以下要求。
XSockets 有一些很好的例子,但同样缺少一些真正的生产指标。
SignalR 似乎还没有在真正的生产环境中经过测试。横向扩展解决方案正在开发中,但似乎还不稳定。期待看到这个项目在未来的表现如何。
主要要求是:
- 能够实现回退技术(如果 HTML5/WebSockets 不可用)
- 高并发连接数和每秒消息数
- 可扩展 - 能够为更大的流量需求添加额外的服务器/节点