我正在寻找一个如何使用ASP.NET实现反向Ajax(Comet)的基本示例。我已经查看了以下内容,我现在不想使用它们(因为它们已付款)
http://www.frozenmountain.com/websync/ http://www.lightstreamer.com/demos.htm
我已经在SO上提到了各种链接。但他们中的大多数都指向外部API。我正在寻找一个明确的例子来说明如何实现它。
答案 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)
答案 3 :(得分:1)
我一直在寻找同样的东西,我发现https://github.com/nmosafi/aspComet是开源的(如果你愿意,你可以为它做贡献)。他们在网站上有一个可以查看的工作样本。他们有一个博客,关于你可能觉得有用的一些设计决策等(Blog Link)
答案 4 :(得分:0)
如果您愿意将Silverlight this S.O. question视为将Javascript链接到服务器的方式,请参阅PollingDuplexHttpBinding。