Sarthak Shah
f6301588ca
fix(adapter): do not skip local broadcast when publishAndReturnOffset throws ( #5457 )
...
Remove the `return` in the catch block of ClusterAdapter.broadcast() so
that super.broadcast() is still called when remote publishing fails.
This ensures local sockets receive the event even if the cluster publish
errors out (e.g. due to a serialization error in the adapter layer).
Related: https://github.com/socketio/socket.io/issues/5456
2026-03-12 11:38:29 +01:00
Damien Arrachequesne
37aad11417
fix: cleanup pending acks on timeout to prevent memory leak
...
Related: https://github.com/socketio/socket.io/issues/4984
2026-03-11 18:26:52 +01:00
Damien Arrachequesne
ba9cd6900d
revert: fix: cleanup pending acks on timeout to prevent memory leak
...
This reverts commit da04267ffc .
The reverted fix was incorrect because the rooms might have changed between the emit() and the timeout.
2026-03-11 18:26:30 +01:00
Damien Arrachequesne
84c2fb7821
chore(release): engine.io@6.6.6
...
Diff: https://github.com/socketio/socket.io/compare/engine.io@6.6.5...engine.io@6.6.6
2026-03-10 10:52:10 +01:00
Not-Sarthak
07cbe1510d
fix(eio): add @types/ws as dependency ( #5458 )
...
Since engine.io@6.6.5, the generated .d.ts files import types from "ws"
(WebSocket, PerMessageDeflateOptions), but @types/ws was not declared as
a dependency. This causes TypeScript compilation errors for consumers
who do not have @types/ws installed.
This follows the existing pattern where @types/cors and @types/node are
already listed as dependencies.
Related: https://github.com/socketio/socket.io/issues/5437
2026-03-04 09:54:58 +01:00
Erdinç Cürebal
44ed73f539
fix(eio): emit initial_headers and headers events in uServer ( #5460 )
...
The uServer (uWebSockets.js) implementation did not emit
"initial_headers" and "headers" events during WebSocket upgrades,
unlike the regular Server which does this via the ws "headers" event.
Related: https://github.com/socketio/socket.io/issues/5300
2026-03-04 09:07:02 +01:00
seungeonchoi
da04267ffc
fix: cleanup pending acks on timeout to prevent memory leak ( #5442 )
...
When using `emitWithAck` with a timeout, if clients didn't respond
and the timeout triggers, the ack callbacks remained in `socket.acks`
Map indefinitely, causing a memory leak.
Related: https://github.com/socketio/socket.io/issues/4984
2026-03-02 16:32:13 +01:00
Damien Arrachequesne
74599a6b9e
fix(types): properly import http module
...
This commit fixes `Module '"http"' has no default export.` errors (ts-node + esm).
2026-01-23 14:55:39 +01:00
Damien Arrachequesne
9978574e4f
chore(release): socket.io@4.8.3
...
Diff: https://github.com/socketio/socket.io/compare/socket.io@4.8.2...socket.io@4.8.3
2025-12-23 17:39:51 +01:00
Damien Arrachequesne
e9e5bed4f2
chore(release): socket.io-client@4.8.3
...
Diff: https://github.com/socketio/socket.io/compare/socket.io-client@4.8.2...socket.io-client@4.8.3
2025-12-23 17:36:53 +01:00
Damien Arrachequesne
9581f9bcfd
fix(sio): do not throw when calling io.close() on a stopped server
...
Following [1], calling both `io.close()` and `httpServer.close()` would throw an ERR_SERVER_NOT_RUNNING exception, which was not the case before.
Related: https://github.com/socketio/socket.io/issues/5431
[1]: bb0b480d2a
2025-12-23 17:30:15 +01:00
Damien Arrachequesne
579d43f33f
refactor: remove unused files
...
[skip ci]
2025-12-23 13:34:44 +01:00
Damien Arrachequesne
ee9aac3134
chore(release): socket.io-parser@4.2.5
...
Diff: https://github.com/socketio/socket.io/compare/socket.io-parser@4.2.4...socket.io-parser@4.2.5
2025-12-23 12:26:38 +01:00
Damien Arrachequesne
968277cef8
chore(release): socket.io-adapter@2.5.6
...
Diff: https://github.com/socketio/socket.io/compare/socket.io-adapter@2.5.5...socket.io-adapter@2.5.6
2025-12-23 12:18:53 +01:00
Damien Arrachequesne
2bf16bd214
chore(release): engine.io-client@6.6.4
...
Diff: https://github.com/socketio/socket.io/compare/engine.io-client@6.6.3...engine.io-client@6.6.4
2025-12-23 12:03:43 +01:00
Damien Arrachequesne
ad616070b8
docs(eio): fix link in the release notes
...
[skip ci]
2025-12-22 17:53:09 +01:00
Damien Arrachequesne
dd71792455
chore(release): socket.io@4.8.2
...
Diff: https://github.com/socketio/socket.io/compare/socket.io@4.8.1...socket.io@4.8.2
2025-12-22 17:42:41 +01:00
Ihor Machuzhak
bb0b480d2a
fix(sio): improve io.close() function ( #5344 )
...
Before this change, `await io.close();` would resolve before the HTTP server was properly shut down.
Related: https://github.com/socketio/socket.io/pull/4971
2025-12-22 17:37:24 +01:00
Damien Arrachequesne
161be91975
test(sio): pin version of the client bundle in the tests
2025-12-22 17:35:35 +01:00
Damien Arrachequesne
fd9d4cab5e
chore(release): socket.io-client@4.8.2
...
Diff: https://github.com/socketio/socket.io/compare/socket.io-client@4.8.1...socket.io-client@4.8.2
2025-12-22 16:52:21 +01:00
Damien Arrachequesne
0a99ac44a2
chore(release): engine.io@6.6.5
...
Diff: https://github.com/socketio/socket.io/compare/engine.io@6.6.4...engine.io@6.6.5
2025-12-22 16:27:31 +01:00
Damien Arrachequesne
9199156758
test(eio): fix flaky test
2025-12-22 15:27:48 +01:00
Damien Arrachequesne
594841617d
test(redis-streams-emitter): migrate to Node.js test runner
...
We should eventually be able to replace:
- mocha and nyc with Node.js built-in test runner (`node:test`)
- expect.js with Node.js built-in assertion library (`node:assert`)
2025-12-22 14:48:29 +01:00
Denis Barbaron
84e7253e57
refactor(sio): add package.json entrypoint ( #5239 )
2025-12-22 14:33:12 +01:00
Damien Arrachequesne
30ec4a136a
test(sio-client): reactivate all tests
2025-12-22 13:46:15 +01:00
Damien Arrachequesne
e08293bc37
refactor(eio): use URL constructor instead of url.parse()
2025-12-22 13:45:52 +01:00
Damien Arrachequesne
b837949479
ci: use Node.js 24
...
Reference: https://github.com/nodejs/Release
2025-12-22 13:45:36 +01:00
Damien Arrachequesne
118ef41b94
test: use tsx instead of ts-node
2025-12-22 10:39:57 +01:00
Suraj Rana
d19928e8d8
fix(sio-client): drain queue before emitting "connect" ( #5259 )
...
When the `retries` option was enabled, an event emitted in the "connect" handler would be sent twice.
Related: https://github.com/socketio/socket.io/issues/5258
2025-12-22 10:39:39 +01:00
Damien Arrachequesne
cdae01983a
fix(sio-client): do not mangle the "_placeholder" attribute (bis)
...
The "_placeholder" attribute is used when sending binary data, and was
incorrectly mangled (converted to a random short property, like "it",
to reduce the bundle size).
Related:
- ca9e994815
- https://github.com/socketio/socket.io/issues/5215
[skip ci]
2025-12-19 15:48:28 +01:00
Damien Arrachequesne
39bb72039d
docs: add release steps
...
[skip ci]
2025-12-19 15:43:14 +01:00
Valentin Rault
98741e15e9
refactor(sio-client): export DisconnectDescription type ( #5392 )
...
Related: https://github.com/socketio/socket.io/issues/4556
2025-12-19 14:51:39 +01:00
Damien Arrachequesne
8af70195bb
refactor(sio): use URL constructor instead of url.parse()
...
Related: https://github.com/socketio/socket.io/issues/5377
2025-12-19 14:44:30 +01:00
Damien Arrachequesne
a7b1938d06
test: regenerate SSL certs
2025-12-15 08:45:47 +01:00
Damien Arrachequesne
54743633ff
chore(release): @socket.io/redis-streams-emitter@0.1.1
...
Diff: https://github.com/socketio/socket.io/compare/@socket.io/redis-streams-emitter@0.1.0...@socket.io/redis-streams-emitter@0.1.1
2025-11-07 10:33:07 +01:00
Damien Arrachequesne
7617707ed8
fix(redis-streams-emitter): remove dependency on socket.io-adapter
...
Related: https://github.com/socketio/socket.io/issues/5414
2025-11-07 10:28:27 +01:00
Damien Arrachequesne
599001d213
chore(release): @socket.io/redis-streams-emitter@0.1.0
2025-11-06 18:23:00 +01:00
Damien Arrachequesne
1c3e4711c1
feat: add emitter based on Redis streams
...
Related: https://github.com/socketio/socket.io-redis-streams-adapter/issues/8
2025-11-06 18:03:37 +01:00
Damien Arrachequesne
693080cac7
refactor(sio-adapter): add more debug logs
2025-10-20 15:11:21 +02:00
Damien Arrachequesne
5080c73e1e
refactor: fix npm command
2025-10-17 09:41:39 +02:00
Damien Arrachequesne
47ff1cd04c
chore(release): @socket.io/cluster-adapter@0.3.0
...
Diff: https://github.com/socketio/socket.io-cluster-adapter/compare/0.2.2...0.3.0
2025-10-16 19:55:56 +02:00
Damien Arrachequesne
0ae76360f9
Merge remote-tracking branch 'socket.io-cluster-adapter/monorepo'
2025-10-16 19:35:51 +02:00
Damien Arrachequesne
27fd420e75
refactor: prepare migration to monorepo
2025-10-16 19:31:30 +02:00
Damien Arrachequesne
f3e1f5ebdf
fix(sio): call adapter.init() when creating each namespace
...
The init() method of the adapter will now be called when creating a namespace with `io.of(<the-namespace>)`.
Note: any promise rejection is silently caught, as I don't see how we could properly expose the promise.
```js
const io = new Server({
adapter: myAdapter
});
// under the hood, this:
// - implicitly creates the main namespace (/)
// - creates an instance of `myAdapter` for the main namespace
// - calls `myAdapter.init()` (with this change)
```
Related:
- https://github.com/socketio/socket.io/issues/3662
- https://github.com/socketio/socket.io-postgres-adapter/issues/16
2025-10-09 09:48:07 +02:00
Damien Arrachequesne
e97549259e
ci(browser): use Windows 8 for IE tests
2025-09-30 11:44:50 +02:00
MiaoWoo
1da9cddeab
fix(eio-client): properly handle port option ( #5241 )
...
Passing { port: "443" } would include the port in the URL (":443").
2025-09-30 10:57:43 +02:00
Avi Vahl
6f9b198bc8
chore(deps): ws@8.18.3, debug@4.4.1 ( #5335 )
...
Release notes:
- https://github.com/websockets/ws/releases/tag/8.18.3
- https://github.com/debug-js/debug/releases/tag/4.4.1
2025-09-11 07:51:07 +02:00
Damien Arrachequesne
ac3df9a747
chore(release): @socket.io/postgres-emitter@0.1.1
2025-09-05 07:27:48 +02:00
Damien Arrachequesne
21fd54ece6
refactor(postgres-emitter): update compose file
2025-09-05 07:20:29 +02:00
Damien Arrachequesne
96d907b9b5
docs(postgres-emitter): add dark version of the explanation diagram
2025-09-05 07:19:07 +02:00