In telecommunication a duplex communication system is a point to point system composed of 2 or more connected devices.
And it can be:
HTTP 1.1, HyperText Transfer Protocol is a Half-duplex system.
So writing chat applications using i.e. LAMP Stack, (Linux, Apache, Mysql & PHP), it involve:
- Actively sampling the status of the server (Polling) for changes
- Keep track timestamp and
- It’s slower than it should be.
Socket have traditionally been the solution for real-time chat application are architected, supplying a bi-directional (Full-duplex) communication channel between the client and the server. It actually use the URI format.
ws://userinfo@host:port/path?query#fragment
This is just a start to wrap your mind around in case you want to understand how socket.io
It also contains very helpful examples

