使网页实时和多用户的最佳方式

Best way to make a webpage live and multiuser

本文关键字:最佳 方式 多用户 网页 实时      更新时间:2023-09-26

我正在构建一个用于"头脑风暴"的web应用程序它的工作原理是:基本上,用户可以进入应用程序,提交挑战,或者点击已经存在的挑战,然后想出解决挑战的想法并发布。我在couchdb上拼凑了一个基本的例子:http://wamoyo.iriscouch.com/ideageneration/_design/IdeaGeneration/attachments%2findex.html

我将从头开始重建它,我遇到了一个我非常陌生的挑战。我希望多个用户能够同时为同一个挑战产生想法。有点像谷歌文档允许多人编辑共享文档的方式。我对如何进行这项工作有一些初步的想法,但我想我应该询问这里的专家网络。

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

非常感谢soo!

制作这样的网页有几种方法,使用简单的ajax轮询、使用长轮询和使用web套接字。

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

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

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

为了进行详细的讨论,我建议阅读Scott Hanselman的这篇好文章。它告诉了SignalR的故事,但适用于其他服务器端框架。

还有同一位作者的播客,嘉宾对这些技术进行了相当深入的解释。值得倾听,IMO.

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