This major release brings several performance improvements:
-
uws is now the default Websocket engine. It should bring significant improvement in performance (particularly in terms of memory consumption) (https://github.com/socketio/engine.io/releases/tag/2.0.0)
-
the Engine.IO and Socket.IO handshake packets were merged, reducing the number of roundtrips necessary to establish a connection. (#2833)
-
it is now possible to provide a custom parser according to the needs of your application (#2829). Please take a look at the example for more information.
Please note that this release is not backward-compatible, due to:
- a breaking change related to utf-8 encoding in engine.io-parser (socketio/engine.io-parser#81)
- an update to make the socket id on the client match the id on the server-side (socketio/socket.io-client#1058)
Please also note that if you are using a self-signed certificate, rejectUnauthorized
now defaults to true
(socketio/engine.io-client#558).
Finally, the API documentation is now in the repository (here), and the content of the website here. Do not hesitate if you see something wrong or missing!
The full list of changes:
- [feat] Move binary detection to the parser (#2923)
- [feat] Allow to join several rooms at once (#2879)
- [feat] Merge Engine.IO and Socket.IO handshake packets (#2833)
- [feat] Allow the use of custom parsers (#2829)
- [fix] Use path.resolve by default and require.resolve as a fallback (#2797) (by @a-lucas)
- [fix] Properly close the connection on error (#2681) (by @Nibbler999)
- [fix] Prevent null from being accepted as argument (#2606) (by @ianbrode)
- [perf] Use shared instance of the encoder (#2825) (by @Nibbler999)
- [perf] Reset properties instead of deleting them (#2826) (by @Nibbler999)
- [perf] micro-optimisations (#2793) (by @billouboq)
- [chore] Merge history of 1.7.x and 0.9.x branches (#2930)
- [chore] Added backers and sponsors on the README (#2933) (by @xdamman)
- [chore] Bump dependencies (#2926)
- [chore] Bump socket.io-adapter to version 1.0.0 (#2867)
- [chore] Bump engine.io to version 2.0.2 (#2864)
- [chore] Bump engine.io to version 2.0.0 (#2832) (by @sgress454)
- [chore] Update issue template with fiddle (#2811)
- [chore] Update copyright year LICENSE to 2017 (#2803) (by @isabellatea)
- [docs] Add an example of custom parser (#2929)
- [docs] Replace non-breaking space with proper whitespace (#2913) (by @epicTCK)
- [docs] Update emit cheatsheet (#2906) (by @FarazPatankar)
- [docs] Explicitly document that Server extends EventEmitter (#2874) (by @i8-pi)
- [docs] Add server.engine.generateId attribute (#2880) (by @efkan)
- [docs] Fix wrong space character in README (#2900) (by @SimenB)
- [docs] Fix documentation for 'connect' event (#2898) (by @swhgoon)
- [docs] Add webpack build example (#2828)
- [docs] Update the wording to match the code example (#2853) (by @timruffles)
- [docs] Small addition to the Express Readme Part (#2846) (by @H3rby7)
- [docs] Add a 'Features' section in the README (#2824)
- [docs] Add httpd cluster example (#2819)
- [docs] Add haproxy cluster example (#2818)
- [docs] Add nginx cluster example (#2817)
- [docs] Implement whiteboard example (#2810)
- [docs] Fix documentation for
local
flag (#2816) - [docs] Add emit cheatsheet (#2815)
- [docs] Add pingInterval/pingTimeout/transports options in the API documentation (#2814)
- [docs] Add an example for socket.join() method (#2813)
- [docs] Fix a typo on
clients
method in the API documentation (#2812) - [docs] Fix wrong argument name in API.md (#2802) (by @andrea11)
- [docs] Add install script on Readme.md (#2780) (by @bananaappletw)
- [docs] API documentation (#2784)
Besides, we are proud to announce that Socket.IO is now a part of open collective: https://opencollective.com/socketio. More on that later.