如何用.NET进行全双工编程?

时间:2009-06-02 14:09:05

标签: .net real-time google-wave

在看过Google Wave演示之后,我想到将“实时”功能整合到我的网络应用程序中,其中一个用户将能够看到其他用户正在输入的文本...

除了.NET内置的软实时功能,基于框架处理线程的方式......

还有什么我需要的吗? 那里有实时网络应用程序的模式或架构参考吗?我应该读些什么?

谢谢!

7 个答案:

答案 0 :(得分:4)

结帐WebSync。它是一个.NET彗星服务器,应该完全符合您的需要。

答案 1 :(得分:3)

您可以尝试使用Silverlight的全双工通道。类似于Java applet的想法,除了.Net。

WCF + Silverlight

答案 2 :(得分:1)

如果不使用Java applet或类似内容,您的HTML / JavaScript前端需要轮询服务器以获取相关事件和更改。

在后端,有多种方法可以实现分布式事件队列或类似方法在服务请求的各个进程之间共享。

答案 3 :(得分:0)

Ajax,SUPXMPP将在这方面为您提供帮助。还要研究Twitter Search和Friendfeed的工作原理。

答案 4 :(得分:0)

彗星虽然并不总是合适,但在某种意义上说它是“民意调查”,尽管它只是在一个潜在的长期工作开始时才进行一次民意调查;然后服务器保持HTTP连接打开,直到它准备好响应。

根据维基百科的定义: “在Web开发中,Comet是一个描述Web应用程序模型的新词,其中长期持有的HTTP请求允许Web服务器将数据推送到浏览器,而浏览器没有明确请求它。”

发现这对于可能需要服务器完成五分钟的作业非常有用,而不是每隔x秒轮询一次,客户端发出请求并且服务器基本上说“挂起......”然后完成工作并在完成后返回数据。

有几个库支持这种类型的Ajax实现,包括Dojo(dojo.com)和ExtJS 3.0(extjs.com)。

答案 5 :(得分:0)

我们开发了一个运营转型引擎,为Google Wave提供支持的技术后端,并在Silverlight上使用DuplexChannel进行同步绘图和文本编辑演示。您可以从http://www.corvalius.com/blog/index.php/technology/announcing-the-availability-of-the-beweevee-sdk-september-ctp/下载。

我们计划完全免费发布SDK(现在正在预览中)用于非商业/学术目的;所以看看你可能有兴趣。至少你可以找到一个非常简单的例子,说明如何在源代码中为协作应用程序进行全双工(包括小型WCF服务器)。

答案 6 :(得分:0)

由于它是一个Web应用程序,我建议您尝试etherpad

.NET Client example on HTTP APIa page on other examples