C# · 12月 29, 2021

c#-4.0 – 使用Comet / XMPP和Microsoft Stack上的WebSocket技术实时Web通知和更新的选项?

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

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

彗星营:

> Pokein
> WebSync

网路营:

> Kaazing
> LightStreamer
> SuperWebSocket
> XSockets
> SignalR

由于现有的基础设施是Microsoft堆栈,所以我宁可不将基于Java的服务器引入到组合中.说这个,它离开(一个非常有吸引力的)WebSync(Comet)和SuperWebSocket(WebSockets).然而,Pokein的DLL集成也是相当无缝的.Net项目.

是否有更多真实的生产级WebSocket计划.Net?在Microsoft堆栈上采用WebSockets还为时过早,我应该喜欢像Kazing这样的东西吗?

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

还有什么其他的事情要考虑?

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

可以从任何使用上述技术和产品的人得到一些意见吗?

谢谢.

UPDATE

我仍然在寻找一些在生产级别可靠的WebSocket服务器.最近发现XSockets和SignalR到Websockets阵营. Hoewver,目前还有两个主要的竞争者.这可能只是因为他们有惊人的营销团队,开发人员可以使用的材料 – API和视频.许多其他实现似乎仍然在新生阶段,其中给出了与只有少数客户端的连接的示例.虽然这表明了这项技术,但这些演示文稿没有备份大量有效负载/负载能力数据. Kaazing和LightStreamer满足以下要求.

XSockets有一些很好的例子,但再次,缺少一些真正的生产指标.

SignalR还没有在真实的生产环境中进行测试.扩展解决方案正在开发中,但尚不稳定.期待看到这个项目在未来的发展.

主要要求是:

>实施后备技术的能力(如果HTML5 / WebSockets是
不可用)
>并发连接数量高,每个消息数量多
第二
>可扩展 – 增加更多服务器/节点的能力
交通要求

解决方法 WebSync v4除了根据需要退回到长轮询/回调轮询之外还使用WebSockets. WebSync中的WebSockets也都在标准HTTP端口上,因此路由器/ filrewalls / etc不会有任何问题.

在“正常”系统中,您应该看到〜20k并发(每个节点)和〜100k个消息/秒.虽然这些数字非常粗糙,因为它严重依赖于您的系统和您发送的消息类型等.我们已经看到高达5万用户(每个节点)和(在不同的测试中)300k个消息/秒.

(免责声明:我为冻山工作)