4

我正在寻找如何使用 ASP.NET 实现反向 Ajax (Comet) 的基本示例。我已经看过下面的,我现在不想使用它们(因为它们是付费的)

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

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

4

5 回答 5

9

不幸的是,你不会找到一个。反向 Ajax 是一项复杂的任务,它需要服务器端和客户端的“魔法”才能跨浏览器兼容、具有适当的状态和线程管理以及可扩展性。本质上,彗星服务器是每个客户端的流式连接(或长轮询)+ 智能线程管理。此外,对于合适的彗星服务器,您还必须完全实现Bayeux 协议

CodeProject上有一篇文章介绍了如何在 IIS 中实现类似的功能,但即使这样也非常复杂。

我们已经考虑过实施我们自己的一些东西,但很快就决定不这样做,因为这会花费我们几个月的工作时间,所以这些产品的价格非常便宜。

此外,如果您真的对如何实现类似的东西感兴趣,最好的起点是深入研究 WebSync 源代码,因为它没有被混淆。不过要小心抄袭,因为他们有很多独特的专业知识。

另一种选择是考虑其他平台(其他语言的开源彗星服务器)。您可能会发现它们比 C# 更适合该任务。例如,你会发现用 erlang 编写一个 comet 服务器非常容易。

编辑:实际上已经有两个关于 SO 的类似问题可能对您有所帮助: ASP.NET 的彗星实现?简单的“长轮询”示例代码?

于 2011-01-17T10:59:41.713 回答
4

看看http://pokein.codeplex.com/

于 2011-01-18T09:48:42.673 回答
2

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

https://github.com/SignalR/SignalR

Scott Hanselman 在他的博客中也谈到了它

于 2012-02-01T19:19:10.383 回答
1

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

于 2011-01-19T09:58:54.463 回答
0

如果您愿意考虑将 Silverlight PollingDuplexHttpBinding作为将 Javascript 链接到您的服务器的一种方式,请参阅此 SO 问题。

于 2011-03-27T14:05:40.647 回答