24

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

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

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

4

4 回答 4

27

node.js是一个平台。

socket.iowebsockets如果您要在node.js.

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

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

于 2012-12-20T03:10:27.287 回答
24

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

于 2012-12-20T03:08:21.273 回答
2

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

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

而 socket.io 只是使用平台的特性,实现了一些很酷的自己的特性,这些特性是添加到节点的。它只是一个库,您可以与核心一起使用。

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

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

于 2012-12-20T12:51:58.207 回答
0

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

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

希望它有所帮助

于 2014-09-30T06:25:33.063 回答