在看过 Google Wave 演示之后,我想将“实时”功能整合到我的 Web 应用程序中,一个用户将能够看到另一个用户正在输入的文本......
除了基于框架如何处理线程的.NET中内置的软实时功能......
还有什么我需要的吗?是否有任何实时 Web 应用程序的模式或架构参考?我应该读什么?
谢谢!
在看过 Google Wave 演示之后,我想将“实时”功能整合到我的 Web 应用程序中,一个用户将能够看到另一个用户正在输入的文本......
除了基于框架如何处理线程的.NET中内置的软实时功能......
还有什么我需要的吗?是否有任何实时 Web 应用程序的模式或架构参考?我应该读什么?
谢谢!
Check out WebSync. It's a .NET comet server that should do exactly what you need.
您可以尝试在 Silverlight 中使用全双工通道。类似于 Java 小程序的想法,但在 .Net 中除外。
如果不使用 Java 小程序或类似程序,您的 HTML/JavaScript 前端将需要轮询服务器以获取相关事件和更改。
在后端,有多种方法可以实现分布式事件队列或类似的方法,以便在服务请求的各个进程之间共享。
彗星,虽然并不总是合适的,但在某种意义上它是“轮询”,尽管它只在一项可能长期工作的开始时轮询一次;然后服务器保持 HTTP 连接打开,直到它准备好响应。
正如 Wikipedia 所定义的:“在 Web 开发中,Comet 是一种新词,用于描述一种 Web 应用程序模型,在这种模型中,长期持有的 HTTP 请求允许 Web 服务器将数据推送到浏览器,而无需浏览器显式请求它。”
发现这对于可能需要服务器五分钟才能完成的作业很有用,而不是每 x 秒轮询一次,客户端发出请求,服务器基本上说“挂起......”并完成工作并返回完成时的数据。
有几个库支持这种类型的 Ajax 实现,包括 Dojo (dojo.com) 和 ExtJS 3.0 (extjs.com)。
我们开发了一个操作转换引擎,这是支持 Google Wave 的技术后端,并使用 Silverlight 上的 DuplexChannel 进行了同步绘图和文本编辑演示。您可以从http://www.corvalius.com/blog/index.php/technology/announcing-the-availability-of-the-beweevee-sdk-september-ctp/下载它。
我们计划为非商业/学术目的完全免费发布 SDK(目前处于预览阶段);因此,您可能会感兴趣。至少您将能够找到一个非常简单的示例,说明如何在源代码中为协作应用程序执行全双工(包括小型 WCF 服务器)。
由于它是一个网络应用程序,我建议您尝试etherpad!