ASP.NET的Comet如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (83)

我一直在寻找在浏览器内部实现类似gmail的消息传递的方法,并且得出了Comet概念。但是,我还没有找到一个好的.NET实现,它允许我在IIS中执行此操作(我们的应用程序是用ASP.NET 2.0编写的)。

我发现(或者可以想到的,对于这个问题)的解决方案需要为每个用户留下一个正在运行的线程 - 以便一旦他收到消息就可以向他返回响应。当然,这根本不能缩放。

所以我的问题是 - 是否知道Comet的ASP.NET实现以其他方式工作?这甚至有可能与IIS?

提问于
用户回答回答于

由于comet的持续连通性,comet很难通过IIS进行扩展,但现在有一个团队正在研究Comet场景。另外看看Aaron Lerch的博客,因为我相信他在ASP.NET中做了一些早期的Comet工作。

用户回答回答于

WebSync是一种符合标准的可扩展Comet服务器,可直接集成到IIS / .NET管道中。它也可以作为托管服务按需提供。

它正式支持每个服务器节点最多20,000个并发客户端连接,但单个测试已经看到它高达50,000个。消息吞吐量在1,000-5,000个并发客户端标记附近是最佳的,每个节点的消息传输速度高达每秒300,000次。

它包括对.NET,Mono,iOS,Mac OS X,Java,Silverlight,Windows Phone,Windows Runtime和.NET Compact的客户端支持,以及对.NET / Mono和PHP的服务器端支持。

使用SQL Server或Azure缓存即可支持群集,但可以为几乎任何事情(Redis,NCache)编写自定义提供程序。

扫码关注云+社区

领取腾讯云代金券