在 Microsoft 堆栈上使用 Comet/XMPP 与 WebSocket 技术进行实时 Web 通知和更新的选项?

在 Microsoft 堆栈上使用 Comet/XMPP 与 WebSocket 技术进行实时 Web 通知和更新的选项?

我正在为一个项目确定架构选项,该项目将呈现用户活动(登录、照片等)的实时更新(如 Facebook)。该项目的两个主要 UI 组件是自动更新滚动区域,其中将列出新通知(照片等),以及将更新诸如更新消息计数等内容的工具栏。

这一领域的竞争者是基于 Jabber/Comet/XMPP 和 WebSocket 的技术。

彗星阵营:

WebSockets 阵营:

  • kaazing.com/
  • www.lightstreamer.com/
  • superwebsocket.codeplex.com/

(无法发布超过两个链接)

由于现有基础架构是 Microsoft 堆栈,我宁愿不将基于 Java 的服务器引入其中。说到这里,它留下了(非常有吸引力的)WebSync(Comet)和 SuperWebSocket(WebSockets)。然而,Pokein 的 DLL 集成也相当无缝地集成到 .Net 项目中。

.Net 是否还有其他实际生产级别的 WebSocket 计划?在 Microsoft 堆栈上采用 WebSocket 是否为时过早?我是否应该支持 Kazing 之类的东西?

我仍在等待有关我们当前用户群的浏览器类型和版本的报告(检查 HTML5 兼容性)。我怀疑这个数字会很低(老用户群)。如果是这样的话,Comet 选项将是赢家。

还有哪些事情需要考虑?

我可以从使用过上述技术和产品的人那里得到一些评论吗?

谢谢。

答案1

我有偏见(我在 Frozen Mountain 工作),但你应该看看 WebSync。

WebSync v4 除了根据需要回退到长轮询/回调轮询之外,还使用 ​​WebSockets。WebSync 中的 WebSockets 也全部通过标准 HTTP 端口,因此不会出现路由器/防火墙等问题。

在“正常”系统上,您应该看到约 20k 个并发消息(每个节点)和约 100k 条消息/秒。不过,这些数字非常粗略,因为它在很大程度上取决于您的系统和您发送的消息类型等。我们曾看到过高达 50k 个用户(每个节点)和(在另一项测试中)300k 条消息/秒。

其他使用过该产品的人的一些评论:

https://stackoverflow.com/a/8525454/25330

https://stackoverflow.com/questions/2604193/websync-pros-and-cons

答案2

根据我的研究,使用 IISNode 查看 Node.JS 和 SocketIO 可能是一个不错的选择。但是,很多人提到过 Node.JS 和 SignalR,进一步深入研究后发现,SignalR 与 .Net 的集成是完全无缝的。

相关内容