1

我正在为“头脑风暴”构建一个网络应用程序。它的工作原理如下:本质上,用户可以进入应用程序并提交挑战,或者单击已经存在的挑战,然后想出解决该挑战的想法并将其发布。我在 couchdb 上编写了一个基本示例:http ://wamoyo.iriscouch.com/ideageneration/_design/IdeaGeneration/attachments%2findex.html

我将从头开始重建它,我正在迎接一个对我来说非常陌生的挑战。我希望多个用户能够同时为同一个挑战产生想法。有点像谷歌文档允许多人编辑共享文档的方式。我对如何解决这个问题有一些初步的想法,但我想我会在这里问专家网络。

我对 AJAX 相当满意,是否有一种纯粹的 AJAX 方式可以让它实时和多用户?使用 node.js 会有巨大的好处吗?还有什么其他选择?

非常感谢!

4

1 回答 1

4

制作此类网页有多种方法,使用普通的 ajax 轮询、使用长轮询和使用 Web 套接字。

  • Ajax 轮询 - 易于实现,本质上是通过 javascript 计时器循环连接到服务器,从服务器检索数据并通过常规 Ajax 将其发送回。

    • 优点:易于实施,适用于任何地方
    • 缺点:更新不是实时的,只有在计时器计时时才交换数据。
  • 长轮询- 想法是连接保持打开状态直到超时,然后重新建立连接。由于不同 Web 服务器、路由器等的请求超时设置不同,实现起来可能很棘手。

  • Web 套接字- HTML5 保护伞的一部分,仅适用于相当现代的浏览器,协议经常更改,这可能导致开发和生产期间的不兼容。可以在现代浏览器中本地使用,也可以通过 Flash 插件与较旧的浏览器一起使用。这种技术是最轻量级的,因为它不会产生所有的 HTTP 开销。可以将其视为浏览器和 Web 服务器之间通过 TCP 进行的双向全双工通信通道。

如需详细讨论,我建议阅读Scott Hanselman 的这篇好文章。它讲述了有关 SignalR 的故事,但适用于其他服务器端框架。

还有同一作者的播客,来宾相当深入地解释了这些技术。值得一听,海事组织。

要回答您关于 node.js 的问题,请与我们分享您当前的服务器技术,以便我们更深入地了解您的堆栈。

于 2012-03-12T06:20:09.867 回答