@darrachequesne darrachequesne released this Nov 29, 2018

Assets 2


  • add cache-control header when serving the client source (#2907)

Bug fixes

  • throw an error when trying to access the clients of a dynamic namespace (#3355)

Milestone: 2.2.0
Diff: 2.1.1...2.2.0
Client release: 2.2.0
Diff engine.io: socketio/engine.io@3.2.0...3.3.1
Diff ws: https://github.com/websockets/ws/compare/3.3.1..6.1.2

@darrachequesne darrachequesne released this May 23, 2018 · 10 commits to master since this release

Assets 2


(server) add local flag to the socket object (#3219)

socket.local.to('room101').emit(/* */);

Bug fixes

(client) fire an error event on middleware failure for non-root namespace (socketio/socket.io-client#1202)

Milestone: 2.1.1
Diff: 2.1.0...2.1.1 (client diff)

@darrachequesne darrachequesne released this Mar 29, 2018 · 14 commits to master since this release

Assets 2


  • add a 'binary' flag (#3185)
// by default, the object is recursively scanned to check whether it contains some binary data
// in the following example, the check is skipped in order to improve performance
socket.binary(false).emit('plain-object', object);

// it also works at the namespace level
io.binary(false).emit('plain-object', object);
  • add support for dynamic namespaces (#3195)
io.of(/^\/dynamic-\d+$/).on('connect', (socket) => {
  // socket.nsp.name = '/dynamic-101'

// client-side
const client = require('socket.io-client')('/dynamic-101');

Bug fixes

  • properly emit 'connect' when using a custom namespace (#3197)
  • include the protocol in the origins check (#3198)

Important note ⚠️ from Engine.IO 3.2.0 release

There are two non-breaking changes that are somehow quite important:

  • ws was reverted as the default wsEngine (socketio/engine.io#550), as there was several blocking issues with uws. You can still use uws by running npm install uws --save in your project and using the wsEngine option:
var engine = require('engine.io');
var server = engine.listen(3000, {
  wsEngine: 'uws'

Milestone: 2.1.0
Diff: 2.0.4...2.1.0
Engine.IO version: 3.2.x

@darrachequesne darrachequesne released this Oct 22, 2017 · 28 commits to master since this release

Assets 2

Bug fixes

  • do not throw when receiving an unhandled error packet (#3038)
  • reset rooms object before broadcasting from namespace (#3039)

Milestone: 2.0.4
Diff: 2.0.3...2.0.4

@darrachequesne darrachequesne released this Jun 13, 2017 · 40 commits to master since this release

Assets 2

Bug fixes

  • reset rooms object before broadcasting (#2970)
  • fix middleware initialization (#2969)

Milestone: 2.0.3
Diff: 2.0.2...2.0.3

@darrachequesne darrachequesne released this Jun 1, 2017 · 45 commits to master since this release

Assets 2

Bug fixes

  • fix timing issues with middleware (#2948)

Milestone: 2.0.2
Diff: 2.0.1...2.0.2

@darrachequesne darrachequesne released this May 16, 2017 · 812 commits to master since this release

Assets 2
  • Properly require EventEmitter

@darrachequesne darrachequesne released this May 8, 2017 · 47 commits to master since this release

Assets 2

Bug fixes

- update path of client file (#2934)

Milestone: 2.0.1
Diff: 2.0.0...2.0.1

@darrachequesne darrachequesne released this May 8, 2017 · 49 commits to master since this release

Assets 2

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:

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.

@darrachequesne darrachequesne released this May 7, 2017 · 91 commits to master since this release

Assets 2
  • [chore] Bump engine.io to version 1.8.4