diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d7bb75e8f..fcbfd5371d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,115 @@ +# [3.0.0](https://github.com/socketio/socket.io/compare/2.3.0...3.0.0) (2020-11-05) + +### Bug Fixes + +* close clients with no namespace ([91cd255](https://github.com/socketio/socket.io/commit/91cd255ba76ff6a780c62740f9f5cd3a76f5d7c7)) + +### Features + +* emit an Error object upon middleware error ([54bf4a4](https://github.com/socketio/socket.io/commit/54bf4a44e9e896dfb64764ee7bd4e8823eb7dc7b)) +* serve msgpack bundle ([aa7574f](https://github.com/socketio/socket.io/commit/aa7574f88471aa30ae472a5cddf1000a8baa70fd)) +* add support for catch-all listeners ([5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a)) +* make Socket#join() and Socket#leave() synchronous ([129c641](https://github.com/socketio/socket.io/commit/129c6417bd818bc8b4e1b831644323876e627c13)) +* remove prod dependency to socket.io-client ([7603da7](https://github.com/socketio/socket.io/commit/7603da71a535481e3fc60e38b013abf78516d322)) +* move binary detection back to the parser ([669592d](https://github.com/socketio/socket.io/commit/669592d120409a5cf00f128070dee6d22259ba4f)) +* add ES6 module export ([8b6b100](https://github.com/socketio/socket.io/commit/8b6b100c284ccce7d85e55659e3397f533916847)) +* do not reuse the Engine.IO id ([2875d2c](https://github.com/socketio/socket.io/commit/2875d2cfdfa463e64cb520099749f543bbc4eb15)) +* remove Server#set() method ([029f478](https://github.com/socketio/socket.io/commit/029f478992f59b1eb5226453db46363a570eea46)) +* remove Socket#rooms object ([1507b41](https://github.com/socketio/socket.io/commit/1507b416d584381554d1ed23c9aaf3b650540071)) +* remove the 'origins' option ([a8c0600](https://github.com/socketio/socket.io/commit/a8c06006098b512ba1b8b8df82777349db486f41)) +* remove the implicit connection to the default namespace ([3289f7e](https://github.com/socketio/socket.io/commit/3289f7ec376e9ec88c2f90e2735c8ca8d01c0e97)) +* throw upon reserved event names ([4bd5b23](https://github.com/socketio/socket.io/commit/4bd5b2339a66a5a675e20f689fff2e70ff12d236)) + +### BREAKING CHANGES + +* the Socket#use() method is removed (see [5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a)) + +* Socket#join() and Socket#leave() do not accept a callback argument anymore. + +Before: + +```js +socket.join("room1", () => { + io.to("room1").emit("hello"); +}); +``` + +After: + +```js +socket.join("room1"); +io.to("room1").emit("hello"); +// or await socket.join("room1"); for custom adapters +``` + +* the "connected" map is renamed to "sockets" +* the Socket#binary() method is removed, as this use case is now covered by the ability to provide your own parser. +* the 'origins' option is removed + +Before: + +```js +new Server(3000, { + origins: ["https://example.com"] +}); +``` + +The 'origins' option was used in the allowRequest method, in order to +determine whether the request should pass or not. And the Engine.IO +server would implicitly add the necessary Access-Control-Allow-xxx +headers. + +After: + +```js +new Server(3000, { + cors: { + origin: "https://example.com", + methods: ["GET", "POST"], + allowedHeaders: ["content-type"] + } +}); +``` + +The already existing 'allowRequest' option can be used for validation: + +```js +new Server(3000, { + allowRequest: (req, callback) => { + callback(null, req.headers.referer.startsWith("https://example.com")); + } +}); +``` + +* Socket#rooms is now a Set instead of an object + +* Namespace#connected is now a Map instead of an object + +* there is no more implicit connection to the default namespace: + +```js +// client-side +const socket = io("/admin"); + +// server-side +io.on("connect", socket => { + // not triggered anymore +}) + +io.use((socket, next) => { + // not triggered anymore +}); + +io.of("/admin").use((socket, next) => { + // triggered +}); +``` + +* the Server#set() method was removed + +This method was kept for backward-compatibility with pre-1.0 versions. + + # [3.0.0-rc4](https://github.com/socketio/socket.io/compare/3.0.0-rc3...3.0.0-rc4) (2020-10-30) diff --git a/client-dist/socket.io.js b/client-dist/socket.io.js index f723198fee..5d85d58da0 100644 --- a/client-dist/socket.io.js +++ b/client-dist/socket.io.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v3.0.0-rc4 + * Socket.IO v3.0.0 * (c) 2014-2020 Guillermo Rauch * Released under the MIT License. */ diff --git a/client-dist/socket.io.min.js b/client-dist/socket.io.min.js index 2d86282426..85d78142fe 100644 --- a/client-dist/socket.io.min.js +++ b/client-dist/socket.io.min.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v3.0.0-rc4 + * Socket.IO v3.0.0 * (c) 2014-2020 Guillermo Rauch * Released under the MIT License. */ diff --git a/client-dist/socket.io.msgpack.min.js b/client-dist/socket.io.msgpack.min.js index a3dbc86217..5eed26b4cb 100644 --- a/client-dist/socket.io.msgpack.min.js +++ b/client-dist/socket.io.msgpack.min.js @@ -1,5 +1,5 @@ /*! - * Socket.IO v3.0.0-rc4 + * Socket.IO v3.0.0 * (c) 2014-2020 Guillermo Rauch * Released under the MIT License. */ diff --git a/package.json b/package.json index 95eabd39bf..5cc6506503 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "socket.io", - "version": "3.0.0-rc4", + "version": "3.0.0", "description": "node.js realtime framework server", "keywords": [ "realtime", @@ -39,8 +39,8 @@ "base64id": "~2.0.0", "debug": "~4.1.0", "engine.io": "~4.0.0", - "socket.io-adapter": "2.0.3-rc2", - "socket.io-parser": "4.0.1-rc3" + "socket.io-adapter": "~2.0.3", + "socket.io-parser": "~4.0.1" }, "devDependencies": { "@types/cookie": "^0.4.0", @@ -54,7 +54,7 @@ "mocha": "^3.5.3", "nyc": "^11.2.1", "prettier": "^1.19.1", - "socket.io-client": "3.0.0-rc4", + "socket.io-client": "3.0.0", "superagent": "^3.8.2", "supertest": "^3.0.0", "ts-node": "^9.0.0",