Node.js和socket.io混淆

我经常看到像“Node.JS + socket.io教程”这样的标题。 即使在我购买的Node.js初学者书中,它也会告诉我要下载socket.io,所以我感到非常困惑。

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

我真的很困惑,所以任何forms的答复将不胜感激。

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

node.js是一个平台。

如果你正在node.js上构build一个应用, socket.io只是一个处理websockets的框架。

socket.io需要node.js但是node.js不需要socket.io

编辑:Ryan Dahl(node.js的创作者)介绍video真的很有启发性,并有助于这种混乱: http : //www.youtube.com/watch?v=jo_B4LTHi3I

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

Node.js – 是一个平台,关注语言 – 使用V8的JavaScript可视化(将JavaScript脚本解释为可理解的JS脚本到计算机)。 还有很多平台的其他组件。

虽然socket.io只是使用平台的function,但实现了一些很酷的自己的function,除了节点。 这只是一个图书馆,除了你使用的核心。

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

Node.js使您的JavaScript使用自己的function运行。 而socket.io是你使用或不使用的东西 – 由你select。

我也在学习nodejs,socket.io,express等内容。 到目前为止我所了解的是,Nodejs是托pipe整个项目(可以在客户端和服务器端)的主要骨干,其节点命令就像> node servercode.js等一样。 它可以为websockets服务器,Http服务器甚至https服务器打开端口。

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

希望它有帮助