Node.js and socket.io confusion

node.js is a platform.

socket.io is just a framework for dealing with websockets if your are building an app on top of node.js.

socket.io needs node.js but node.js does not need socket.io

EDIT: Ryan Dahl's (node.js's creator) intro video is really instructive and helps with this kind of confusion: http://www.youtube.com/watch?v=jo_B4LTHi3I


socket.io is a library, addition to actual platform which is node.js. It is like a software to computer. You can't use software without computer.

Node.js - is platform, that takes care about language - JavaScript visualization using V8 (JavaScript Engine that interpret JS script to understandable form to the computer). And lots of other components of platform.

While socket.io is just using features of platform, implements some cool own features that are addition to node. It is just a library, addition that you use along with the core.

In real world its like hoover - is a node.js, and nozzle is socket.io. Of course it is rough example, and things are much more complicated. But as you can see, nozzle is pointless without core.

Node.js makes your JavaScript running using own features. While socket.io is something you use or not - by your choice.


Socket.io is a framework on node.js for realtime applications. So, both is required if you want to use socket.io. You can code your own to do the same thing but socket.io is cross-browser and by using it can help you save time.