Commit Graph

7696 Commits

Author SHA1 Message Date
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
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
Pádraic Slattery
d48718cb67 ci: use actions/checkout@v6 and actions/setup-node@v6 (#5449)
Release notes:

- https://github.com/actions/checkout/blob/main/CHANGELOG.md
- https://github.com/actions/setup-node/releases/tag/v6.0.0
2026-01-23 09:46:45 +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
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
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
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
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
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
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
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
engine.io@6.6.5
2025-12-22 16:27:31 +01:00
Damien Arrachequesne
4338f47336 ci(publish): use Node.js 24
Trusted publishing requires npm CLI version 11.5.1 or later.

Reference: https://docs.npmjs.com/trusted-publishers#for-github-actions
2025-12-22 16:27:30 +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
d88f3f4578 ci: use actions/checkout@v6 and actions/setup-node@v6
Release notes:

- https://github.com/actions/checkout/blob/main/CHANGELOG.md
- https://github.com/actions/setup-node/releases/tag/v6.0.0
2025-12-15 09:38:45 +01:00
Damien Arrachequesne
f5ee981ee8 ci(publish): use trusted publishing
Reference: https://docs.npmjs.com/trusted-publishers

[skip ci]
2025-12-15 08:57:17 +01:00
Damien Arrachequesne
76e3a72bba docs: add missing changelog links
[skip ci]
2025-12-15 08:55:26 +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
@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 @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
@socket.io/cluster-adapter@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
0c431243e2 refactor: use the ClusterAdapter class from socket.io-adapter package
The ClusterAdapter class has been moved to [1], so that this adapter
only needs to implement to pub/sub mechanism.

Also, [2] should reduce the number of "timeout reached: only x
responses received out of y" errors, since the fetchSockets() requests
will now succeed even if a server leaves the cluster.

[1]: https://github.com/socketio/socket.io/tree/main/packages/socket.io-adapter
[2]: 0e23ff0cc6
2025-10-16 19:16:20 +02:00
Damien Arrachequesne
4fc25d80ec ci: add Node.js 24
Reference: https://github.com/nodejs/Release
2025-10-16 12:03:32 +02:00