【问题标题】:using nodejs instead of comet for longpolling使用 nodejs 代替 comet 进行长轮询
【发布时间】:2011-08-08 03:52:04
【问题描述】:

这个想法是使用 nodejs 而不是 comet 进行长轮询。 目的是发现数据库中的更改并将更新刷新给多个用户。 有任何想法吗 ? 谢谢

【问题讨论】:

    标签: mysql node.js


    【解决方案1】:

    comet 是 ajax 技术的分组术语。这是一种进行长轮询的方式。

    node.js 是事件 IO。具体来说,您将使用它来运行 HTTP 服务器。

    node.js 不能很好地与您当前的服务器端(可能是 php)混合。是的,你可以使用 node.js 和 socket.io 在客户端和服务器之间进行通信。

    我个人建议使用 mysql 作为节点的数据库。它更适合基于文档的 noSQL 数据库。

    【讨论】:

    • 非常感谢您的建议。根据你的情况,这种情况会更好
    • @user597441 你的网站是什么。到目前为止你有什么。如果你想使用 node.js,要么用 node 创建一个 websocket 服务器,要么在 node.js 中创建你的整个网站。您想将整个网站移植到节点吗?
    • 不完全是一个网站,但这是一个场景 大约有 100 个用户,每个人都必须同时被告知数据库更改。轮询似乎无法正常工作,所以我认为 nodejs 会是一个更好的解决方案。
    • @user597441 是的,您可以将 socket.io 与 nodejs 一起使用。还是要明白nodejs是服务器,轮询是通信方式。
    • 关于 MySQL 不太适合 node 的评论你有参考吗?我在节点的设计中看不到任何支持这一点的东西。我唯一同意的是它与 MongoDB 配合得很好,两者都是 Javascript/JSON。
    【解决方案2】:

    我无法评论 Comet,但对于您的具体情况,我建议您使用 socket.io 从服务器推送更新。

    看看这个例子>https://github.com/andrewdavey/vogue

    看看他是如何使用 socket.io 将内容推送到客户端的。不推荐使用 MySql,但它相当可行。

    【讨论】:

    • 嗨 nEEBz。是否可以使用 socket.io 创建频道、订阅/取消订阅频道。
    • 我自己没有使用过套接字,但我认为你可以。对于每个用例,您都可以设置通道,但不确定这是否是一个非常好的策略,因为它会给网络带来相当大的负载。
    【解决方案3】:

    Node.js 和 Comet 不是一回事。在 Node 中运行的用 JavaScript 编写的服务器可以使用 Comet 或 WebSockets(两者都在 socket.io 模块中很好地抽象出来)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 2011-02-03
      • 2011-05-21
      • 1970-01-01
      • 2017-05-15
      • 2018-11-16
      • 1970-01-01
      相关资源
      最近更新 更多