使用ASP.NET反转Ajax(Comet)

时间:2011-01-17 10:32:46

标签: asp.net jquery ajax comet reverse-ajax

我正在寻找一个如何使用ASP.NET实现反向Ajax(Comet)的基本示例。我已经查看了以下内容,我现在不想使用它们(因为它们已付款)

http://www.frozenmountain.com/websync/ http://www.lightstreamer.com/demos.htm

我已经在SO上提到了各种链接。但他们中的大多数都指向外部API。我正在寻找一个明确的例子来说明如何实现它。

5 个答案:

答案 0 :(得分:9)

不幸的是你找不到一个。反向Ajax是一项复杂的任务,需要服务器端和客户端“魔术”才能跨浏览器兼容,具有适当的状态和线程管理并且可扩展。本质上,一个彗星服务器是每个客户端(或长轮询)+聪明的线程管理的流连接。除了适当的彗星服务器,您还必须完全实现the Bayeux protocol

CodeProject上有一篇关于如何在IIS中实现类似内容的文章,但即使这样也非常复杂。

我们已经考虑过实施我们自己的东西,但很快就决定反对,因为这会花费我们数月的工作,所以这些产品的价格非常便宜。

另外,如果你真的对如何实现这样的东西感兴趣,那么最好的开始就是挖掘WebSync源代码,因为它没有被混淆。小心剽窃,因为他们在那里有很多独特的诀窍。

另一个选择是考虑其他平台(其他语言的开源彗星服务器)。您可能会发现它们比C#更适合于该任务。例如,您会发现writing a comet server in erlang很容易。

编辑:在SO上实际上已经有两个很大的类似问题可能对您有所帮助: Comet implementation for ASP.NET?Simple “Long Polling” example code?

答案 1 :(得分:4)

答案 2 :(得分:2)

看看SignalR,它是免费的,非常易于使用且运行良好。

https://github.com/SignalR/SignalR

Scott Hanselman也在his blog谈论它

答案 3 :(得分:1)

我一直在寻找同样的东西,我发现https://github.com/nmosafi/aspComet是开源的(如果你愿意,你可以为它做贡献)。他们在网站上有一个可以查看的工作样本。他们有一个博客,关于你可能觉得有用的一些设计决策等(Blog Link

答案 4 :(得分:0)

如果您愿意将Silverlight this S.O. question视为将Javascript链接到服务器的方式,请参阅PollingDuplexHttpBinding