What are the differences between socket.io and websockets in
node.js?
Are they both server push technologies?
The only differences I felt was,
Also, I wonder why web inspectors(like Chrome/firebug/fiddler) are unable to catch these messages(from socket.io/websocket) from server?
Please clarify this.. Thanks.
Socket.IO uses WebSockets when it can.
Its advantages are that it simplifies the usage of WebSockets as you described in #2, and probably more importantly it provides failovers to other protocols in the event that WebSockets are not supported on the browser or server. I would avoid using WebSockets directly unless you are very familiar with what environments they don't work and you are capable of working around those limitations.
This is a good read on both WebSockets and Socket.IO.