1 | ## [4.3.1](https://github.com/socketio/socket.io/compare/4.3.0...4.3.1) (2021-10-16)
|
2 |
|
3 |
|
4 | ### Bug Fixes
|
5 |
|
6 | * fix server attachment ([#4127](https://github.com/socketio/socket.io/issues/4127)) ([0ef2a4d](https://github.com/socketio/socket.io/commit/0ef2a4d02c9350aff163df9cb61aece89c4dac0f))
|
7 |
|
8 |
|
9 | # [4.3.0](https://github.com/socketio/socket.io/compare/4.2.0...4.3.0) (2021-10-14)
|
10 |
|
11 |
|
12 | ### Bug Fixes
|
13 |
|
14 | * **typings:** add name field to cookie option ([#4099](https://github.com/socketio/socket.io/issues/4099)) ([033c5d3](https://github.com/socketio/socket.io/commit/033c5d399a2b985afad32c1e4b0c16d764e248cd))
|
15 | * send volatile packets with binary attachments ([dc81fcf](https://github.com/socketio/socket.io/commit/dc81fcf461cfdbb5b34b1a5a96b84373754047d5))
|
16 |
|
17 |
|
18 | ### Features
|
19 |
|
20 | * serve ESM bundle ([60edecb](https://github.com/socketio/socket.io/commit/60edecb3bd33801803cdcba0aefbafa381a2abb3))
|
21 |
|
22 |
|
23 | # [4.2.0](https://github.com/socketio/socket.io/compare/4.1.3...4.2.0) (2021-08-30)
|
24 |
|
25 |
|
26 | ### Bug Fixes
|
27 |
|
28 | * **typings:** allow async listener in typed events ([ccfd8ca](https://github.com/socketio/socket.io/commit/ccfd8caba6d38b7ba6c5114bd8179346ed07671c))
|
29 |
|
30 |
|
31 | ### Features
|
32 |
|
33 | * ignore the query string when serving client JavaScript ([#4024](https://github.com/socketio/socket.io/issues/4024)) ([24fee27](https://github.com/socketio/socket.io/commit/24fee27ba36485308f8e995879c10931532c814e))
|
34 |
|
35 |
|
36 | ## [4.1.3](https://github.com/socketio/socket.io/compare/4.1.2...4.1.3) (2021-07-10)
|
37 |
|
38 |
|
39 | ### Bug Fixes
|
40 |
|
41 | * fix io.except() method ([94e27cd](https://github.com/socketio/socket.io/commit/94e27cd072c8a4eeb9636f6ffbb7a21d382f36b0))
|
42 | * remove x-sourcemap header ([a4dffc6](https://github.com/socketio/socket.io/commit/a4dffc6527f412d51a786ae5bf2e9080fe1ca63c))
|
43 |
|
44 |
|
45 | ## [4.1.2](https://github.com/socketio/socket.io/compare/4.1.1...4.1.2) (2021-05-17)
|
46 |
|
47 |
|
48 | ### Bug Fixes
|
49 |
|
50 | * **typings:** ensure compatibility with TypeScript 3.x ([0cb6ac9](https://github.com/socketio/socket.io/commit/0cb6ac95b49a27483b6f1b6402fa54b35f82e36f))
|
51 | * ensure compatibility with previous versions of the adapter ([a2cf248](https://github.com/socketio/socket.io/commit/a2cf2486c366cb62293101c10520c57f6984a3fc))
|
52 |
|
53 |
|
54 | ## [4.1.1](https://github.com/socketio/socket.io/compare/4.1.0...4.1.1) (2021-05-11)
|
55 |
|
56 |
|
57 | ### Bug Fixes
|
58 |
|
59 | * **typings:** properly type server-side events ([b84ed1e](https://github.com/socketio/socket.io/commit/b84ed1e41c9053792caf58974c5de9395bfd509f))
|
60 | * **typings:** properly type the adapter attribute ([891b187](https://github.com/socketio/socket.io/commit/891b1870e92d1ec38910f03bb839817e2d6be65a))
|
61 |
|
62 |
|
63 | # [4.1.0](https://github.com/socketio/socket.io/compare/4.0.2...4.1.0) (2021-05-11)
|
64 |
|
65 |
|
66 | ### Features
|
67 |
|
68 | * add support for inter-server communication ([93cce05](https://github.com/socketio/socket.io/commit/93cce05fb3faf91f21fa71212275c776aa161107))
|
69 | * notify upon namespace creation ([499c892](https://github.com/socketio/socket.io/commit/499c89250d2db1ab7725ab2b74840e188c267c46))
|
70 | * add a "connection_error" event ([7096e98](https://github.com/socketio/engine.io/commit/7096e98a02295a62c8ea2aa56461d4875887092d), from `engine.io`)
|
71 | * add the "initial_headers" and "headers" events ([2527543](https://github.com/socketio/engine.io/commit/252754353a0e88eb036ebb3082e9d6a9a5f497db), from `engine.io`)
|
72 |
|
73 |
|
74 | ### Performance Improvements
|
75 |
|
76 | * add support for the "wsPreEncoded" writing option ([dc381b7](https://github.com/socketio/socket.io/commit/dc381b72c6b2f8172001dedd84116122e4cc95b3))
|
77 |
|
78 |
|
79 | ## [4.0.2](https://github.com/socketio/socket.io/compare/4.0.1...4.0.2) (2021-05-06)
|
80 |
|
81 |
|
82 | ### Bug Fixes
|
83 |
|
84 | * **typings:** make "engine" attribute public ([b81ce4c](https://github.com/socketio/socket.io/commit/b81ce4c9d0b00666361498e2ba5e0d007d5860b8))
|
85 | * properly export the Socket class ([d65b6ee](https://github.com/socketio/socket.io/commit/d65b6ee84c8e91deb61c3c1385eb19afa196a909))
|
86 |
|
87 |
|
88 | ## [4.0.1](https://github.com/socketio/socket.io/compare/4.0.0...4.0.1) (2021-03-31)
|
89 |
|
90 |
|
91 | ### Bug Fixes
|
92 |
|
93 | * **typings:** add fallback to untyped event listener ([#3834](https://github.com/socketio/socket.io/issues/3834)) ([a11152f](https://github.com/socketio/socket.io/commit/a11152f42b281df83409313962f60f230239c79e))
|
94 | * **typings:** update return type from emit ([#3843](https://github.com/socketio/socket.io/issues/3843)) ([1a72ae4](https://github.com/socketio/socket.io/commit/1a72ae4fe27a14cf60916f991a2c94da91d9e54a))
|
95 |
|
96 |
|
97 | # [4.0.0](https://github.com/socketio/socket.io/compare/3.1.2...4.0.0) (2021-03-10)
|
98 |
|
99 |
|
100 | ### Bug Fixes
|
101 |
|
102 | * make io.to(...) immutable ([ac9e8ca](https://github.com/socketio/socket.io/commit/ac9e8ca6c71e00d4af45ee03f590fe56f3951186))
|
103 |
|
104 |
|
105 | ### Features
|
106 |
|
107 | * add some utility methods ([b25495c](https://github.com/socketio/socket.io/commit/b25495c069031674da08e19aed68922c7c7a0e28))
|
108 | * add support for typed events ([#3822](https://github.com/socketio/socket.io/issues/3822)) ([0107510](https://github.com/socketio/socket.io/commit/0107510ba8a0f148c78029d8be8919b350feb633))
|
109 | * allow to exclude specific rooms when broadcasting ([#3789](https://github.com/socketio/socket.io/issues/3789)) ([7de2e87](https://github.com/socketio/socket.io/commit/7de2e87e888d849eb2dfc5e362af4c9e86044701))
|
110 | * allow to pass an array to io.to(...) ([085d1de](https://github.com/socketio/socket.io/commit/085d1de9df909651de8b313cc6f9f253374b702e))
|
111 |
|
112 |
|
113 | ## [3.1.2](https://github.com/socketio/socket.io/compare/3.1.1...3.1.2) (2021-02-26)
|
114 |
|
115 |
|
116 | ### Bug Fixes
|
117 |
|
118 | * ignore packets received after disconnection ([494c64e](https://github.com/socketio/socket.io/commit/494c64e44f645cbd24c645f1186d203789e84af0))
|
119 |
|
120 |
|
121 | ## [3.1.1](https://github.com/socketio/socket.io/compare/3.1.0...3.1.1) (2021-02-03)
|
122 |
|
123 |
|
124 | ### Bug Fixes
|
125 |
|
126 | * properly parse the CONNECT packet in v2 compatibility mode ([6f4bd7f](https://github.com/socketio/socket.io/commit/6f4bd7f8e7c41a075a8014565330a77c38b03a8d))
|
127 | * **typings:** add return types and general-case overload signatures ([#3776](https://github.com/socketio/socket.io/issues/3776)) ([9e8f288](https://github.com/socketio/socket.io/commit/9e8f288ca9f14f91064b8d3cce5946f7d23d407c))
|
128 | * **typings:** update the types of "query", "auth" and "headers" ([4f2e9a7](https://github.com/socketio/socket.io/commit/4f2e9a716d9835b550c8fd9a9b429ebf069c2895))
|
129 |
|
130 |
|
131 | # [3.1.0](https://github.com/socketio/socket.io/compare/3.0.5...3.1.0) (2021-01-15)
|
132 |
|
133 |
|
134 | ### Features
|
135 |
|
136 | * confirm a weak but matching ETag ([#3485](https://github.com/socketio/socket.io/issues/3485)) ([161091d](https://github.com/socketio/socket.io/commit/161091dd4c9e1b1610ac3d45d964195e63d92b94))
|
137 | * **esm:** export the Namespace and Socket class ([#3699](https://github.com/socketio/socket.io/issues/3699)) ([233650c](https://github.com/socketio/socket.io/commit/233650c22209708b5fccc4349c38d2fa1b465d8f))
|
138 | * add support for Socket.IO v2 clients ([9925746](https://github.com/socketio/socket.io/commit/9925746c8ee3a6522bd640b5d586c83f04f2f1ba))
|
139 | * add room events ([155fa63](https://github.com/socketio/socket.io-adapter/commit/155fa6333a504036e99a33667dc0397f6aede25e))
|
140 |
|
141 |
|
142 | ### Bug Fixes
|
143 |
|
144 | * allow integers as event names ([1c220dd](https://github.com/socketio/socket.io-parser/commit/1c220ddbf45ea4b44bc8dbf6f9ae245f672ba1b9))
|
145 |
|
146 |
|
147 | ## [3.0.5](https://github.com/socketio/socket.io/compare/3.0.4...3.0.5) (2021-01-05)
|
148 |
|
149 |
|
150 | ### Bug Fixes
|
151 |
|
152 | * properly clear timeout on connection failure ([170b739](https://github.com/socketio/socket.io/commit/170b739f147cb6c92b423729b877e242e376927d))
|
153 |
|
154 |
|
155 | ### Reverts
|
156 |
|
157 | * restore the socket middleware functionality ([bf54327](https://github.com/socketio/socket.io/commit/bf5432742158e4d5ba2722cff4a614967dffa5b9))
|
158 |
|
159 |
|
160 | ## [3.0.4](https://github.com/socketio/socket.io/compare/3.0.3...3.0.4) (2020-12-07)
|
161 |
|
162 |
|
163 | ## [3.0.3](https://github.com/socketio/socket.io/compare/3.0.2...3.0.3) (2020-11-19)
|
164 |
|
165 |
|
166 | ## [3.0.2](https://github.com/socketio/socket.io/compare/3.0.1...3.0.2) (2020-11-17)
|
167 |
|
168 |
|
169 | ### Bug Fixes
|
170 |
|
171 | * merge Engine.IO options ([43705d7](https://github.com/socketio/socket.io/commit/43705d7a9149833afc69edc937ea7f8c9aabfeef))
|
172 |
|
173 |
|
174 | ## [3.0.1](https://github.com/socketio/socket.io/compare/3.0.0...3.0.1) (2020-11-09)
|
175 |
|
176 |
|
177 | ### Bug Fixes
|
178 |
|
179 | * export ServerOptions and Namespace types ([#3684](https://github.com/socketio/socket.io/issues/3684)) ([f62f180](https://github.com/socketio/socket.io/commit/f62f180edafdd56d8a8a277e092bc66df0c5f07f))
|
180 | * **typings:** update the signature of the emit method ([50671d9](https://github.com/socketio/socket.io/commit/50671d984a81535a6a15c704546ca7465e2ea295))
|
181 |
|
182 |
|
183 | # [3.0.0](https://github.com/socketio/socket.io/compare/2.3.0...3.0.0) (2020-11-05)
|
184 |
|
185 | ### Bug Fixes
|
186 |
|
187 | * close clients with no namespace ([91cd255](https://github.com/socketio/socket.io/commit/91cd255ba76ff6a780c62740f9f5cd3a76f5d7c7))
|
188 |
|
189 | ### Features
|
190 |
|
191 | * emit an Error object upon middleware error ([54bf4a4](https://github.com/socketio/socket.io/commit/54bf4a44e9e896dfb64764ee7bd4e8823eb7dc7b))
|
192 | * serve msgpack bundle ([aa7574f](https://github.com/socketio/socket.io/commit/aa7574f88471aa30ae472a5cddf1000a8baa70fd))
|
193 | * add support for catch-all listeners ([5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a))
|
194 | * make Socket#join() and Socket#leave() synchronous ([129c641](https://github.com/socketio/socket.io/commit/129c6417bd818bc8b4e1b831644323876e627c13))
|
195 | * remove prod dependency to socket.io-client ([7603da7](https://github.com/socketio/socket.io/commit/7603da71a535481e3fc60e38b013abf78516d322))
|
196 | * move binary detection back to the parser ([669592d](https://github.com/socketio/socket.io/commit/669592d120409a5cf00f128070dee6d22259ba4f))
|
197 | * add ES6 module export ([8b6b100](https://github.com/socketio/socket.io/commit/8b6b100c284ccce7d85e55659e3397f533916847))
|
198 | * do not reuse the Engine.IO id ([2875d2c](https://github.com/socketio/socket.io/commit/2875d2cfdfa463e64cb520099749f543bbc4eb15))
|
199 | * remove Server#set() method ([029f478](https://github.com/socketio/socket.io/commit/029f478992f59b1eb5226453db46363a570eea46))
|
200 | * remove Socket#rooms object ([1507b41](https://github.com/socketio/socket.io/commit/1507b416d584381554d1ed23c9aaf3b650540071))
|
201 | * remove the 'origins' option ([a8c0600](https://github.com/socketio/socket.io/commit/a8c06006098b512ba1b8b8df82777349db486f41))
|
202 | * remove the implicit connection to the default namespace ([3289f7e](https://github.com/socketio/socket.io/commit/3289f7ec376e9ec88c2f90e2735c8ca8d01c0e97))
|
203 | * throw upon reserved event names ([4bd5b23](https://github.com/socketio/socket.io/commit/4bd5b2339a66a5a675e20f689fff2e70ff12d236))
|
204 |
|
205 | ### BREAKING CHANGES
|
206 |
|
207 | * the Socket#use() method is removed (see [5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a))
|
208 |
|
209 | * Socket#join() and Socket#leave() do not accept a callback argument anymore.
|
210 |
|
211 | Before:
|
212 |
|
213 | ```js
|
214 | socket.join("room1", () => {
|
215 | io.to("room1").emit("hello");
|
216 | });
|
217 | ```
|
218 |
|
219 | After:
|
220 |
|
221 | ```js
|
222 | socket.join("room1");
|
223 | io.to("room1").emit("hello");
|
224 | // or await socket.join("room1"); for custom adapters
|
225 | ```
|
226 |
|
227 | * the "connected" map is renamed to "sockets"
|
228 | * the Socket#binary() method is removed, as this use case is now covered by the ability to provide your own parser.
|
229 | * the 'origins' option is removed
|
230 |
|
231 | Before:
|
232 |
|
233 | ```js
|
234 | new Server(3000, {
|
235 | origins: ["https://example.com"]
|
236 | });
|
237 | ```
|
238 |
|
239 | The 'origins' option was used in the allowRequest method, in order to
|
240 | determine whether the request should pass or not. And the Engine.IO
|
241 | server would implicitly add the necessary Access-Control-Allow-xxx
|
242 | headers.
|
243 |
|
244 | After:
|
245 |
|
246 | ```js
|
247 | new Server(3000, {
|
248 | cors: {
|
249 | origin: "https://example.com",
|
250 | methods: ["GET", "POST"],
|
251 | allowedHeaders: ["content-type"]
|
252 | }
|
253 | });
|
254 | ```
|
255 |
|
256 | The already existing 'allowRequest' option can be used for validation:
|
257 |
|
258 | ```js
|
259 | new Server(3000, {
|
260 | allowRequest: (req, callback) => {
|
261 | callback(null, req.headers.referer.startsWith("https://example.com"));
|
262 | }
|
263 | });
|
264 | ```
|
265 |
|
266 | * Socket#rooms is now a Set instead of an object
|
267 |
|
268 | * Namespace#connected is now a Map instead of an object
|
269 |
|
270 | * there is no more implicit connection to the default namespace:
|
271 |
|
272 | ```js
|
273 | // client-side
|
274 | const socket = io("/admin");
|
275 |
|
276 | // server-side
|
277 | io.on("connect", socket => {
|
278 | // not triggered anymore
|
279 | })
|
280 |
|
281 | io.use((socket, next) => {
|
282 | // not triggered anymore
|
283 | });
|
284 |
|
285 | io.of("/admin").use((socket, next) => {
|
286 | // triggered
|
287 | });
|
288 | ```
|
289 |
|
290 | * the Server#set() method was removed
|
291 |
|
292 | This method was kept for backward-compatibility with pre-1.0 versions.
|
293 |
|
294 |
|
295 | # [3.0.0-rc4](https://github.com/socketio/socket.io/compare/3.0.0-rc3...3.0.0-rc4) (2020-10-30)
|
296 |
|
297 |
|
298 | ### Features
|
299 |
|
300 | * emit an Error object upon middleware error ([54bf4a4](https://github.com/socketio/socket.io/commit/54bf4a44e9e896dfb64764ee7bd4e8823eb7dc7b))
|
301 | * serve msgpack bundle ([aa7574f](https://github.com/socketio/socket.io/commit/aa7574f88471aa30ae472a5cddf1000a8baa70fd))
|
302 |
|
303 |
|
304 |
|
305 | # [3.0.0-rc3](https://github.com/socketio/socket.io/compare/3.0.0-rc2...3.0.0-rc3) (2020-10-26)
|
306 |
|
307 |
|
308 | ### Features
|
309 |
|
310 | * add support for catch-all listeners ([5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a))
|
311 | * make Socket#join() and Socket#leave() synchronous ([129c641](https://github.com/socketio/socket.io/commit/129c6417bd818bc8b4e1b831644323876e627c13))
|
312 | * remove prod dependency to socket.io-client ([7603da7](https://github.com/socketio/socket.io/commit/7603da71a535481e3fc60e38b013abf78516d322))
|
313 |
|
314 |
|
315 | ### BREAKING CHANGES
|
316 |
|
317 | * the Socket#use() method is removed (see [5c73733](https://github.com/socketio/socket.io/commit/5c737339858d59eab4b5ee2dd6feff0e82c4fe5a))
|
318 |
|
319 | * Socket#join() and Socket#leave() do not accept a callback argument anymore.
|
320 |
|
321 | Before:
|
322 |
|
323 | ```js
|
324 | socket.join("room1", () => {
|
325 | io.to("room1").emit("hello");
|
326 | });
|
327 | ```
|
328 |
|
329 | After:
|
330 |
|
331 | ```js
|
332 | socket.join("room1");
|
333 | io.to("room1").emit("hello");
|
334 | // or await socket.join("room1"); for custom adapters
|
335 | ```
|
336 |
|
337 |
|
338 |
|
339 | # [3.0.0-rc2](https://github.com/socketio/socket.io/compare/3.0.0-rc1...3.0.0-rc2) (2020-10-15)
|
340 |
|
341 |
|
342 | ### Bug Fixes
|
343 |
|
344 | * close clients with no namespace ([91cd255](https://github.com/socketio/socket.io/commit/91cd255ba76ff6a780c62740f9f5cd3a76f5d7c7))
|
345 |
|
346 |
|
347 | ### Code Refactoring
|
348 |
|
349 | * remove duplicate _sockets map ([8a5db7f](https://github.com/socketio/socket.io/commit/8a5db7fa36a075da75cde43cd4fb6382b7659953))
|
350 |
|
351 |
|
352 | ### Features
|
353 |
|
354 | * move binary detection back to the parser ([669592d](https://github.com/socketio/socket.io/commit/669592d120409a5cf00f128070dee6d22259ba4f))
|
355 |
|
356 |
|
357 | ### BREAKING CHANGES
|
358 |
|
359 | * the "connected" map is renamed to "sockets"
|
360 | * the Socket#binary() method is removed, as this use case is now covered by the ability to provide your own parser.
|
361 |
|
362 |
|
363 |
|
364 | # [3.0.0-rc1](https://github.com/socketio/socket.io/compare/2.3.0...3.0.0-rc1) (2020-10-13)
|
365 |
|
366 |
|
367 | ### Features
|
368 |
|
369 | * add ES6 module export ([8b6b100](https://github.com/socketio/socket.io/commit/8b6b100c284ccce7d85e55659e3397f533916847))
|
370 | * do not reuse the Engine.IO id ([2875d2c](https://github.com/socketio/socket.io/commit/2875d2cfdfa463e64cb520099749f543bbc4eb15))
|
371 | * remove Server#set() method ([029f478](https://github.com/socketio/socket.io/commit/029f478992f59b1eb5226453db46363a570eea46))
|
372 | * remove Socket#rooms object ([1507b41](https://github.com/socketio/socket.io/commit/1507b416d584381554d1ed23c9aaf3b650540071))
|
373 | * remove the 'origins' option ([a8c0600](https://github.com/socketio/socket.io/commit/a8c06006098b512ba1b8b8df82777349db486f41))
|
374 | * remove the implicit connection to the default namespace ([3289f7e](https://github.com/socketio/socket.io/commit/3289f7ec376e9ec88c2f90e2735c8ca8d01c0e97))
|
375 | * throw upon reserved event names ([4bd5b23](https://github.com/socketio/socket.io/commit/4bd5b2339a66a5a675e20f689fff2e70ff12d236))
|
376 |
|
377 |
|
378 | ### BREAKING CHANGES
|
379 |
|
380 | * the 'origins' option is removed
|
381 |
|
382 | Before:
|
383 |
|
384 | ```js
|
385 | new Server(3000, {
|
386 | origins: ["https://example.com"]
|
387 | });
|
388 | ```
|
389 |
|
390 | The 'origins' option was used in the allowRequest method, in order to
|
391 | determine whether the request should pass or not. And the Engine.IO
|
392 | server would implicitly add the necessary Access-Control-Allow-xxx
|
393 | headers.
|
394 |
|
395 | After:
|
396 |
|
397 | ```js
|
398 | new Server(3000, {
|
399 | cors: {
|
400 | origin: "https://example.com",
|
401 | methods: ["GET", "POST"],
|
402 | allowedHeaders: ["content-type"]
|
403 | }
|
404 | });
|
405 | ```
|
406 |
|
407 | The already existing 'allowRequest' option can be used for validation:
|
408 |
|
409 | ```js
|
410 | new Server(3000, {
|
411 | allowRequest: (req, callback) => {
|
412 | callback(null, req.headers.referer.startsWith("https://example.com"));
|
413 | }
|
414 | });
|
415 | ```
|
416 |
|
417 | * Socket#rooms is now a Set instead of an object
|
418 |
|
419 | * Namespace#connected is now a Map instead of an object
|
420 |
|
421 | * there is no more implicit connection to the default namespace:
|
422 |
|
423 | ```js
|
424 | // client-side
|
425 | const socket = io("/admin");
|
426 |
|
427 | // server-side
|
428 | io.on("connect", socket => {
|
429 | // not triggered anymore
|
430 | })
|
431 |
|
432 | io.use((socket, next) => {
|
433 | // not triggered anymore
|
434 | });
|
435 |
|
436 | io.of("/admin").use((socket, next) => {
|
437 | // triggered
|
438 | });
|
439 | ```
|
440 |
|
441 | * the Server#set() method was removed
|
442 |
|
443 | This method was kept for backward-compatibility with pre-1.0 versions.
|
444 |
|