【问题标题】:Node.js and socket.io confusionNode.js 和 socket.io 的混淆
【发布时间】:2012-12-07 12:42:54
【问题描述】:

我经常看到诸如“Node.JS + socket.io 教程”之类的标题。即使在我购买的 Node.js Beginner 书中,它也告诉我要下载 socket.io,所以我真的很困惑。

它们之间有什么区别?为什么我不能只使用 Node.JS "OR" Socket.io 来编写我的应用程序?如果我可以编码,为什么人们在标题中使用 socket.io 加 node.js?

我真的很困惑,所以任何形式的回复都将不胜感激。

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    node.js 是一个平台。

    socket.io 只是一个处理websockets 的框架,如果您正在node.js 之上构建应用程序。

    socket.io 需要node.jsnode.js 不需要socket.io

    编辑:Ryan Dahl(node.js 的创建者)的介绍视频非常有启发性,有助于解决这种困惑:http://www.youtube.com/watch?v=jo_B4LTHi3I

    【讨论】:

      【解决方案2】:

      Socket.io 是基于 node.js 的实时应用程序框架。因此,如果您想使用 socket.io,两者都是必需的。您可以编写自己的代码来做同样的事情,但 socket.io 是跨浏览器的,使用它可以帮助您节省时间。

      【讨论】:

      • 所以node.js就像Apache,而socket.io是PHP?
      • @IcarusCocksson:嗯...node.js 就像 Apache 和 PHP,而 socket.io 就像 。
      • 嗯,我想我明白了。我将使用 node.js,但 socket.io 将帮助我处理 websockets 等。对吗?
      • Socket.IO 也是客户端库。有几个不同的后端,所以基于 Socket.io 的应用程序不需要有 Node.js 组件。
      • 那么为什么不直接使用 Express 和模板呢?
      【解决方案3】:

      socket.io 是一个库,除了实际平台 node.js。 它就像计算机的软件。没有电脑就无法使用软件。

      Node.js - 是一个平台,关注语言 - 使用 V8 的 JavaScript 可视化(将 JS 脚本解释为计算机可理解形式的 JavaScript 引擎)。以及许多其他平台组件。

      虽然 socket.io 只是使用平台的功能,但实现了一些很酷的自己的功能,这些功能是添加到 node.js 中的。它只是一个库,您可以与核心一起使用。

      在现实世界中,它就像 hoover - 是 node.js,而喷嘴是 socket.io。当然这是粗略的例子,事情要复杂得多。但如你所见,没有核心的喷嘴是毫无意义的。

      Node.js 使您的 JavaScript 使用自己的功能运行。虽然 socket.io 是您使用或不使用的东西 - 由您选择。

      【讨论】:

        【解决方案4】:

        我也在学习 nodejs、socket.io、express 等的细节。到目前为止我所理解的是,Nodejs 是托管整个项目(可以在客户端和服务器端)的大骨干,使用节点命令,如 > node servercode.js 等。它可以为websockets服务器、Http服务器甚至https服务器打开端口。

        但是 socketio 以异步事件驱动的方式提供客户端和服务器端之间的通信链接(想想 ajax)。

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2012-02-01
          • 2012-08-13
          • 1970-01-01
          • 1970-01-01
          • 2016-02-14
          • 2013-04-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多