Damien Arrachequesne
923a12e2de
fix(eio): discard all pending packets when the server is closed
...
In some specific cases, the transport was not closed right away,
leaving the Node.js process alive even after closing the server.
The HTTP long-polling transport would be closed after the heartbeat
failure and the `closeTimeout` delay (20 + 25 + 30 seconds).
Example:
```js
io.on("connection", (socket) => {
// the writeBuffer is not empty, so the transport is not closed right away
io.close();
});
```
Related: https://github.com/socketio/socket.io/issues/5088
2024-09-18 18:17:14 +02:00
Damien Arrachequesne
13c6d2e89d
fix(sio-client): allow to manually stop the reconnection loop
...
```js
socket.io.on("reconnect_attempt", () => {
socket.io.reconnection(false); // will now work properly
});
```
Related: https://github.com/socketio/socket.io/issues/5126
2024-09-18 11:19:28 +02:00
Tom Jenkinson
8adcfbfde5
fix(sio-client): do not send a packet on an expired connection ( #5134 )
...
When a laptop is suspended or a phone is locked, the timer that is used
to check the liveness of the connection is paused and is not able to
detect that the heartbeat has failed.
Previously, emitting a message after resuming the page would lose the
message. The status of the timer will now be checked before sending the
message, so that it gets buffered and sent upon reconnection.
Note: we could also have used the Page Visibility API or a custom
setTimeout() method based on setInterval(), but this would not be as
reliable as the current solution.
Reference: https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
Related: https://github.com/socketio/socket.io/issues/5135
2024-09-18 11:11:22 +02:00
Damien Arrachequesne
7a23dde6ef
perf: do not reset the hearbeat timer on each packet
...
This reverts ed34a45a07
See also: 5359bae683
2024-09-18 11:06:39 +02:00
Damien Arrachequesne
60c757f718
fix(sio-client): accept string | undefined as init argument (bis)
...
Following: 5a3eafed1c
Related: https://github.com/socketio/socket.io/issues/4873
2024-09-18 08:09:47 +02:00
Damien Arrachequesne
04c8dd979c
fix(sio-client): close the engine upon decoding exception
...
Related: https://github.com/socketio/socket.io/issues/5128
2024-09-18 07:52:37 +02:00
Damien Arrachequesne
2194264820
test(eio-client): reduce test suite duration
2024-09-18 07:52:12 +02:00
Damien Arrachequesne
09f573cad8
test(sio-client): reduce test suite duration
2024-09-18 07:52:12 +02:00
Damien Arrachequesne
fcbecd4f46
ci: restore package-specific tests
2024-09-17 15:07:23 +02:00
Damien Arrachequesne
fd99f2e15f
refactor(sio): export the DefaultEventsMap type
...
Related: https://github.com/socketio/socket.io/issues/4747
2024-09-16 15:49:15 +02:00
Damien Arrachequesne
02d59a0e99
chore: re-enable publish workflow
...
This reverts commit 7160eb7eb0 .
[skip ci]
2024-09-16 09:11:35 +02:00
Damien Arrachequesne
7160eb7eb0
chore: temporarily disable publish workflow
...
In order to import tags from other repositories.
[skip ci]
2024-09-16 08:56:07 +02:00
Wang Guan
a1ccba3a77
chore: use prettier v3 everywhere ( #5169 )
2024-09-16 08:43:08 +02:00
Mark Nelissen
e347a3c24e
fix(sio): correctly await async close on adapters ( #4971 )
...
Following: bf64870957
2024-09-14 08:51:08 +02:00
nayounsang
b5ccfd4838
refactor(eio-client): improve transports type ( #5188 )
...
Related: https://github.com/socketio/socket.io/issues/5187
2024-09-14 08:17:36 +02:00
Wang Guan
5d9a2d5544
chore(socket.io-client): bump engine.io-client to version 6.6.0
2024-08-23 23:19:45 +02:00
Wang Guan
d5b22f5a76
chore(socket.io): bump engine.io to version 6.6.0
2024-08-23 23:19:31 +02:00
Damien Arrachequesne
582655f679
test(cluster-engine): fix flaky test cleanup
2024-07-26 09:26:47 +02:00
KartikeSingh
b79d80aa59
docs: fix conjunction with fastify example ( #5057 )
...
[skip ci]
2024-07-22 11:32:58 +02:00
Damien Arrachequesne
7fd75e6aac
docs(changelog): add changelog for socket.io-parser@3.3.4
...
Diff: https://github.com/Automattic/socket.io-parser/compare/3.3.3...3.3.4
[skip ci]
2024-07-22 11:28:47 +02:00
Damien Arrachequesne
b7577556e3
docs: add example with NestJS
...
Reference: https://docs.nestjs.com/websockets/gateways
[skip ci]
2024-07-22 10:07:45 +02:00
Damien Arrachequesne
6e9bff4fcf
docs: add example with @socket.io/postgres-adapter
...
[skip ci]
2024-07-19 15:20:12 +02:00
Damien Arrachequesne
8b0a40fd4a
docs: add examples with @socket.io/cluster-engine
...
[skip ci]
2024-07-19 08:42:38 +02:00
Damien Arrachequesne
1f09a3e979
ci(publish): compile all packages before publishing
...
As some packages depend on the types of others.
[skip ci]
2024-07-18 10:07:47 +02:00
Damien Arrachequesne
0af50758f6
chore(cluster-engine): update homepage URL
2024-07-18 10:03:57 +02:00
Damien Arrachequesne
b9b16132c2
chore(socket.io-adapter): remove dist before compilation
2024-07-17 10:34:57 +02:00
Damien Arrachequesne
be1e4cb24d
ci(publish): update the tag regex
...
In order to also match "@socket.io/some-package@1.2.3".
Reference: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
[skip ci]
2024-07-17 10:26:56 +02:00
Damien Arrachequesne
7521ac227b
chore(release): @socket.io/cluster-engine@0.1.0
@socket.io/cluster-engine@0.1.0
2024-07-17 09:53:34 +02:00
Damien Arrachequesne
b00124b65a
feat: implement cluster-friendly engine
2024-07-17 09:27:12 +02:00
Damien Arrachequesne
b7da542890
chore: normalize repository URLs
...
In order to address the following warning when publishing:
> npm warn publish npm auto-corrected some errors in your package.json when publishing. Please run "npm pkg fix" to address these errors.
> npm warn publish errors corrected:
> npm warn publish "repository.url" was normalized to "git+https://github.com/socketio/socket.io.git "
2024-07-11 14:59:00 +02:00
Damien Arrachequesne
0692bed462
chore: fix the publish workflow
...
It seems the "registry-url" variable is mandatory: https://github.com/npm/cli/issues/6184
2024-07-11 13:45:44 +02:00
Damien Arrachequesne
f00fc89b07
chore(release): engine.io-parser@5.2.3
engine.io-parser@5.2.3
2024-07-11 13:33:58 +02:00
Damien Arrachequesne
f9cb983ab7
fix(engine.io-parser): do not expose the TransformStream type
...
The previous commit [1] tried to work around the fact that the
TransformStream object is not exposed in the global scope in the
`@types/node` package, even though it is since Node.js `v18.0.0`.
Unfortunately, it created two new issues:
- using an older `@types/node` version (before v16) would fail with:
> error TS2307: Cannot find module 'node:stream/web' or its corresponding type declarations.
Related: https://github.com/socketio/socket.io/issues/5064#issuecomment-2217149344
- browser-only environments would somehow include the node types,
leading to conflicts like the return value of the setTimeout() method
Related:
- https://github.com/socketio/socket.io/issues/5064#issuecomment-2217149374
- https://github.com/socketio/socket.io/issues/5065
[1]: 0305b4a7a5
2024-07-11 13:08:18 +02:00
Damien Arrachequesne
04033b241b
chore: add publish workflow (2)
...
We need to exclude the 'main' branch (it's an OR operator).
Reference: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
2024-07-11 12:38:47 +02:00
Damien Arrachequesne
fbc0313a10
chore: add publish workflow
...
Reference: https://docs.npmjs.com/generating-provenance-statements
2024-07-11 12:27:36 +02:00
Damien Arrachequesne
2a29c4c30e
chore: move dev dependencies in the parent package.json file
...
Notes:
- TypeScript is updated from v4 to v5
- WebDriverIO is updated from v7 to v8
- prettier is kept in v2, in order to reduce style changes
2024-07-10 10:42:22 +02:00
Damien Arrachequesne
d3761e3e9e
docs(security): add the list of CVE for the socket.io-client package
2024-07-09 12:32:14 +02:00
Damien Arrachequesne
afdc3b2916
ci: restore browser tests with Sauce Labs
...
The `pull_request` trigger is excluded, since the secrets are not
available for those builds.
2024-07-09 11:22:48 +02:00
Damien Arrachequesne
84d2aa74cd
chore: update the repository URLs
2024-07-09 10:51:43 +02:00
Damien Arrachequesne
5fae41a0d5
chore: align all MIT licenses text
...
Note: the owner of the `socket.io` repository was updated to Automattic
in [1], though it was never applied to the other repositories nor
mentioned in the client bundles.
[1]: 340281152f
2024-07-09 10:44:20 +02:00
Damien Arrachequesne
ec79211701
docs: init README for the monorepo
2024-07-08 16:07:34 +02:00
Damien Arrachequesne
8c3debf15a
docs: init the contributing guide
...
Related: https://github.com/socketio/socket.io/issues/4814
2024-07-08 15:33:41 +02:00
Damien Arrachequesne
cbf6df0812
Merge remote-tracking branch 'engine.io-protocol/v3'
...
Source: https://github.com/socketio/engine.io-protocol/tree/v3
2024-07-08 12:21:31 +02:00
Damien Arrachequesne
1d65f11e93
Merge remote-tracking branch 'engine.io-protocol/main'
...
Source: https://github.com/socketio/engine.io-protocol
2024-07-08 12:18:53 +02:00
Damien Arrachequesne
498e8e22d6
refactor: prepare the migration to a monorepo
2024-07-08 12:18:11 +02:00
Damien Arrachequesne
68efa28014
refactor: prepare the migration to a monorepo
2024-07-08 12:16:14 +02:00
Damien Arrachequesne
34137d39a9
chore: add new npm workspaces
...
The following repositories were merged:
- https://github.com/socketio/engine.io-parser
- https://github.com/socketio/engine.io-client
- https://github.com/socketio/engine.io-parser
- https://github.com/socketio/socket.io-adapter
- https://github.com/socketio/emitter
2024-07-08 12:10:24 +02:00
Damien Arrachequesne
8d0c4835dc
Merge remote-tracking branch 'socket.io-component-emitter/main' into monorepo
...
Source: https://github.com/socketio/emitter
2024-07-08 11:10:24 +02:00
Damien Arrachequesne
dce7200378
Merge remote-tracking branch 'socket.io-adapter/main' into monorepo
...
Source: https://github.com/socketio/socket.io-adapter
2024-07-08 11:09:26 +02:00
Damien Arrachequesne
3546094cfc
refactor: prepare the migration to a monorepo
2024-07-08 11:08:10 +02:00