我经常看到像“Node.JS + socket.io教程”这样的标题。甚至在我购买的Node.js初学者书中,它告诉我下载socket.io所以我真的很困惑。
他们之间有什么区别?为什么我不能使用Node.JS“OR”Socket.io来编写我的应用程序?如果我可以编码,为什么人们在标题中添加socket.io和node.js?
我真的很困惑,所以任何回复都会受到赞赏。
答案 0 :(得分:25)
node.js
是一个平台。
socket.io
之上构建应用, websockets
只是处理node.js
的框架。
socket.io
需要node.js
但node.js
不需要socket.io
编辑:Ryan Dahl(node.js的创作者)介绍视频真的很有启发性并且有助于解决这种混乱:http://www.youtube.com/watch?v=jo_B4LTHi3I
答案 1 :(得分:23)
Socket.io是node.js上用于实时应用程序的框架。因此,如果要使用socket.io,则两者都是必需的。您可以编写自己的代码来执行相同的操作,但socket.io是跨浏览器的,使用它可以帮助您节省时间。
答案 2 :(得分:2)
socket.io是一个库,除了实际平台之外是node.js. 它就像一台计算机软件。没有计算机就无法使用软件。
Node.js - 是平台,负责语言 - 使用V8进行JavaScript可视化(JavaScript引擎将JS脚本解释为计算机可理解的形式)。以及平台的许多其他组件。
虽然socket.io只是使用平台的功能,但实现了一些很酷的自身功能,这些功能是节点的补充。它只是一个库,您可以将其与核心一起使用。
在现实世界中,它像hoover一样 - 是一个node.js,而喷嘴是socket.io。当然,这是一个粗略的例子,事情要复杂得多。但正如你所看到的,没有核心,喷嘴毫无意义。
Node.js使用自己的功能运行JavaScript。虽然socket.io是您使用或不使用的 - 您可以选择。
答案 3 :(得分:0)
我也在学习nodejs,socket.io,express等的烦恼。到目前为止我所理解的是,Nodejs是托管整个项目的主要支柱(可能在客户端和服务器端都可以使用节点命令,如>节点servercode.js等。它可以为websockets服务器,Http服务器甚至https服务器打开端口。
然而,socketio以异步事件驱动的方式提供客户端和服务器端之间的通信链接(想想ajax)。
希望有所帮助