关于iis:Comet实现ASP.NET吗?

关于iis:Comet实现ASP.NET吗?

Comet implementation for ASP.NET?

我一直在研究在浏览器中实现类似gmail的消息传递的方法,并提出了Comet概念。 但是,我找不到能够在IIS中完成此操作的良好.NET实现(我们的应用程序是用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条的速度传递消息。

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

开箱即用的SQL Server或Azure缓存都支持群集,但是自定义提供程序几乎可以写任何东西(Redis,NCache)。

免责声明:我为开发此产品的公司工作。


我最近根据Clay Lenhart的精彩文章写了一个使用MVC 3异步控制器的长轮询聊天服务器的简单示例。

您可以在我根据BitBucket项目的源代码设置的AppHarbor部署中使用该示例。

另外,可以从我的博客文章中获得更多信息来解释该项目。


实际上,使用ASP.NET创建支持ajax的网站有很多选择,但老实说,PokeIn是创建支持彗星ajax的Web应用程序的最简单方法。它已保存了我公司的项目之一。


您可能还会看到Kaazing企业网关,它已经发布了webSocket [HTML5]网关的生产版本,该网关完全取代了彗星方式,并实现了浏览器和应用程序服务器之间的全双工连接。

您可能还会看到Light Streamer演示


WS-I组发布了一种称为"可靠的安全配置文件"的文件,该文件具有Glass Fish和.NET的实现,显然可以很好地实现互操作。

运气好的话,还有Java脚本实现。

还有一个使用HTTP Duplex的Silverlight实现。您可以将JavaScript连接到Silverlight对象,以在发生推送时获取回调。

也有商业付费版本。


我很久以前曾经使用过一个聊天站点,该站点利用了自定义的http流服务器。实际上,出于好奇,我曾经一次复制过该软件,我认为这样做很容易。我绝不会尝试在IIS中实现类似类型的"无限请求",尤其是在ASP.NET中,因为这些请求会无限期地占用线程池线程(如果使用异步处理程序,则是IO线程),这意味着您只能在您的线程池配置允许的情况下,每个服务器要处理的内容太多。

如果我对此类功能有强烈的合法需求,那么我会老实地为它编写一个自定义的http服务器。

我知道这并不能真正回答您的问题,但我认为所提出的建议可能是有意义的。


我认为,除非您准备水平扩展Web场(通过向组合中添加更多Web服务器),否则Comet方法并不是真正可扩展的。它的工作方式是使每个用户会话都保持TCP连接打开,以便服务器可以不时将内容推送到该连接中,以立即将更改或活动通知用户。


推荐阅读

    linux常见操作命令?

    linux常见操作命令?,系统,工作,信息,管理,地址,命令,目录,单位,数据,标准,lin

    浏览器调用linux命令?

    浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,

    浏览器调用linux命令?

    浏览器调用linux命令?,系统,信息,人工智能,软件,数据,首次,地址,代码,咨询,

    红帽子linux操作命令?

    红帽子linux操作命令?,服务,系统,密码,环境,信息,通用,软件,状态,设备,命令,

    linux日常操作命令?

    linux日常操作命令?,工作,系统,地址,信息,命令,目录,基础,管理,操作,功能,lin

    linux安装浏览器命令?

    linux安装浏览器命令?,官网,系统,平台,网站,管理,设备,咨询,工具,官方网站,

    linux使用命令的方法?

    linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,

    go操作linux命令?

    go操作linux命令?,系统,工具,环境,软件,标准,网上,最新,信息,设备,电脑,Linux

    linux命令操作vim?

    linux命令操作vim?,系统,地址,工作,命令,模式,标准,信息,入口,连续,时间,Linu

    linux操作不了命令?

    linux操作不了命令?,系统,密码,不了,命令,位置,信息,情况,网络,地址,定期,lin

    linux运维操作命令?

    linux运维操作命令?,系统,网络,基础,标准,工具,信息,工作,命令,软件,数据,lin

    linux命令行常见操作?

    linux命令行常见操作?,系统,工作,地址,管理,信息,命令,目录,一致,基础,标准,l

    linux清空操作命令?

    linux清空操作命令?,系统,数据,命令,名称,不了,文件夹,文件,环境,回收站,目

    linux安装操作命令?

    linux安装操作命令?,系统,工作,地址,工具,服务,情况,信息,命令,最新,管理,lin

    linux浏览网页的命令?

    linux浏览网页的命令?,工作,系统,传播,地址,命令,环境,发行,信息,网络,基础,l

    linux操作系mv命令?

    linux操作系mv命令?,名字,系统,软件,文件,命令,信息,地址,目录,文件夹,源文

    linux操作命令大全图?

    linux操作命令大全图?,工作,地址,系统,信息,命令,目录,控制台,功能,操作,内

    linux操作命令论文?

    linux操作命令论文?,管理,系统,设计,网络,企业,基础,机电设备,技术,发展,机

    linux启动浏览器命令?

    linux启动浏览器命令?,系统,情况,发行,不了,官网,环境,工具,传播,基础,软件,

    linux默认浏览器命令?

    linux默认浏览器命令?,环境,系统,发行,工程,工具,浏览器,软件,情况,网站,管