why would I need engine.io,websockets for example when engine.io already uses websockets if it can upgrade the connection to them?
You can tell engine.io to only use websockets, but what's the point if you can use websockets directly and have the same API?