|This article needs additional citations for verification. (October 2013)|
|Original author(s)||Guillermo Rauch|
|Stable release||1.0.1 / May 28, 2014|
Socket.IO primarily uses the WebSocket protocol, but if needed can fallback on multiple other methods, such as Adobe Flash sockets, JSONP polling, and AJAX long polling, while providing the same interface. Although it can be used as simply a wrapper for WebSocket, it provides many more features, including broadcasting to multiple sockets, storing data associated with each client, and asynchronous I/O.
Socket.IO will automatically select the best suited realtime communication protocol at runtime per client, requiring the programmer to only have Socket.IO knowledge.
Socket.IO is not a WebSocket library with fallback options to other realtime protocols. Its a custom realtime transport protocol implementation on top of other realtime protocols. Its protocol negotiation parts cause a client supporting standard WebSocket to not being able to contact a Socket.IO server. And a Socket.IO implementing client cannot talk to a non Socket.IO based WebSocket or Long Polling Comet server. Therefore Socket.IO requires using the Socket.IO libraries on both client and server side.
|This software article is a stub. You can help Wikipedia by expanding it.|