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

2023-11-22

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

其竞争者是基于 Jabber/Comet/XMPP 和 WebSocket 技术。

彗星营地:

  • Pokein
  • WebSync

WebSockets 阵营:

  • Kaazing
  • 光流
  • 超级WebSocket
  • XSockets
  • SignalR

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

.Net 是否还有更多真正的生产级 WebSocket 计划?在 Microsoft 堆栈上采用 WebSocket 是否为时过早?我是否应该支持 Kazing 之类的技术?

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

还有哪些其他事情需要考虑?

看看 Sockets.IO 等一些 .Net 计划,我认为这可能还处于起步阶段,无法应用于大规模生产系统。

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

Thanks.

UPDATE

我仍在寻找一些在生产级别上可靠的优秀 WebSocket 服务器。最近发现 XSockets 和 SignalR 后,我将它们添加到了 Websockets 阵营。然而,目前仍然有两个主要竞争者。这可能只是因为他们拥有非常出色的营销团队,为开发人员提供了良好的材料 - API 和视频。许多其他实现似乎仍处于新生阶段,其中给出了仅与少数客户端连接的示例。虽然这演示了该技术,但这些演示没有重要的有效负载/负载能力数据支持。 Kaazing 和 LightStreamer 确实满足以下要求。

XSockets 有一些很好的示例,但同样缺少一些实际的生产指标。

SignalR 似乎还没有在真正的生产环境中经过测试。横向扩展解决方案正在开发中,但似乎尚未稳定。期待看到这个项目未来的表现。

主要要求是:

  1. 能够实施回退技术(如果 HTML5/WebSockets 无法使用)
  2. 高并发连接数和每个消息数 第二
  3. 可扩展 - 能够添加额外的服务器/节点以实现更大的规模 交通要求

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

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

(免责声明:我在冰山工作)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何在 C# 中将 ListView 与目录和文件绑定

    我想在 C 的 ListView 中绑定 C 驱动器中的所有目录和文件 我的代码是 protected void Page Load object sender EventArgs e DirectoryInfo di new Direct
  • 如何在清除排序描述后删除wpf网格排序箭头

    我单击网格标题对列进行排序 然后单击 重置 按钮以通过其集合视图清除排序描述 但排序箭头图标仍然保留在标题中 如何去除它 我在尝试弄清楚如何完全清除网格中的排序时遇到了这个问题 感谢 krishnaaditya 回答如何清除标题中的排序箭头
  • webhook 和 websocket 之间的区别?

    我一直想进行实时聊天 几年前我用 PHP Ajax Mysql 完成了这个任务 并破坏了我的服务器 然后我尝试使用 Flash 文本文件 我放弃了 10年没有尝试过 但最近我听说了 webhooks 和 websockets 它们似乎都是做
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • 使用 NAudio c# 将 wma 音频流转换为 mp3 流

    我的任务是使用 NAudio 和 Lame 将 wma 音频流转换为 mp3 流 下面的代码可以很好地处理文件名 但我希望它可以使用内存流来完成 我在 NAudio 中搜索没有读取 wma 音频流的方法 NAudio 可以吗 public
  • 如何使用 POCO 发送 websocket PONG 响应

    我正在尝试使用 POCO 1 7 5 设置 websocket 服务器 POCO的样本发现here https github com pocoproject poco blob develop Net samples WebSocketSe
  • jquery comet 长轮询和流媒体教程? [复制]

    这个问题在这里已经有答案了 可能的重复 彗星和 jQuery https stackoverflow com questions 136012 comet and jquery 我厌倦了找不到关于 jquery 长轮询 流彗星技术的好的教程
  • Mojolicious:我应该使用一个还是多个 websocket?

    我正在自学 Mojolicious 和 websockets 到目前为止 我已经有了一个网页 它显示数据库中的行 并具有用于添加 删除和更新行以及选择用于排序的列的按钮 目前 它在每个按钮的 javascript onclick 处理程序中
  • SearchBoxControl 专注于在 Win8.1 上启动应用程序

    我在 Windows 8 1 应用程序中使用新的 SearchBox 控件 但每次启动应用程序时 SearchBox 都会获得焦点并显示搜索历史记录 我尝试将焦点设置在页面上的另一个控件上 但它不起作用 那么如何在不显示搜索历史记录的情况下
  • SecurityAction.RequestMinimum 在 .Net 4.0 中已过时

    最近 我们的 Net 客户端库正在升级以针对 Net 4 0 进行编译 将目标框架更改为4 0后 应用程序出现一些编译错误 In AssemblyInfo cs assembly SecurityPermission SecurityAct
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • Edge浏览器Websocket连接将在空闲时间后自动关闭

    我在新的Window Edge浏览器上做了关于Websocket的测试 看来Edge浏览器上的websocket连接会在空闲时间后自动关闭 没有数据传输b w 2端点 在 Chrome 或 Firefox 上不会出现此问题 我只是好奇 在E
  • 聊天室成员列表

    如何检索正在使用的聊天室的成员列表XMPP framework 我尝试使用 void xmppRoom XMPPRoom sender didFetchMembersList NSArray items 但它返回一个空数组 这个问题很老了
  • 使用 Webpack 代理创建 React 应用程序中的 WebSockets

    我使用版本 3 1 2 2019 年 9 月 19 日 中的 Create React App 创建了我的 React 应用程序 我试图为 Web Socket 请求配置代理 但似乎当我使用代理时 未建立连接 我用过THIS https g
  • 在 C# 中将平面数据库结果集转换为分层对象集合

    我有一个数据库查询 它以平面格式返回分层数据 例如客户 订单和订单项目 只是一个例子 我的数据不同 如何将其转换为分层对象集合 即客户对象的集合 其中每个客户对象都有订单对象的集合 每个订单对象都有订单项目对象的集合 这只是循环遍历每个项目
  • ExpressJS & Websocket & 会话共享

    我正在尝试制作一个基于 Node js 的聊天应用程序 我想强制 websocket 服务器 ws 库 使用 ExpressJS 会话系统 不幸的是 我被困住了 用于获取会话数据的 MemoryStore 哈希值与 cookie 中的会话
  • 如何从 Web 表单请求返回 HTTP 400 - 错误请求错误?

    这个主题几乎说明了一切 我有一个 EstateReport Web 表单 必须使用 EstateId 请求参数来调用 如果此参数不存在 我想返回适当的 HTTP 错误 如何返回 HTTP 错误 400 作为响应 切线 如果所需的参数不存在
  • 通过 VSTO 更改 Outlook AppointmentItem 的组织者

    我正在尝试通过我开发的插件从 Outlook 中的数据库创建一组 AppointmentItems 我希望能够在另一个交换帐户的日历上创建约会项目 我有它的凭据 AppointmentItem 的 Organizer 属性是只读的 没有帮助
  • 防止 NGINX 中的一个 WebSocket 连接泛滥?

    我使用这个配置来防止我的服务器上出现类似 DOS 的洪水 limit req zone binary remote addr zone one 10m rate 10r s limit req zone binary remote addr
  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文

随机推荐