Damien Arrachequesne
3b7ced7af7
chore(release): 4.5.4
...
Diff: https://github.com/socketio/socket.io/compare/4.5.3...4.5.4
4.5.4
2022-11-22 22:45:13 +01:00
Damien Arrachequesne
c00bb9564c
chore: bump engine.io to version 6.2.1
...
In order to fix CVE-2022-41940.
See also: https://github.com/socketio/engine.io/security/advisories/GHSA-r7qp-cfhv-p84w
2022-11-22 22:35:53 +01:00
Damien Arrachequesne
57e5f25e26
chore: bump socket.io-parser to version 4.2.1
...
In order to fix CVE-2022-2421.
See also: https://github.com/advisories/GHSA-qm95-pgcg-qqfq
2022-11-22 22:32:09 +01:00
Damien Arrachequesne
f4b698418a
docs: add missing versions in the changelog
2022-11-02 08:40:26 +01:00
Damien Arrachequesne
945c84be47
chore(release): 4.5.3
...
Diff: https://github.com/socketio/socket.io/compare/4.5.2...4.5.3
4.5.3
2022-10-15 07:14:45 +02:00
Damien Arrachequesne
d3d0a2d5be
fix(typings): accept an HTTP2 server in the constructor
...
Related:
- https://github.com/socketio/socket.io/issues/4434
- https://github.com/socketio/socket.io/issues/4494
2022-10-14 11:24:36 +02:00
Damien Arrachequesne
19b225b0c8
docs(examples): update dependencies of the basic CRUD example
...
Related: https://github.com/socketio/socket.io/issues/4409
2022-10-14 10:39:40 +02:00
Damien Arrachequesne
8fae95dd18
docs: add jsdoc for each public method
2022-10-14 10:30:08 +02:00
Damien Arrachequesne
e6f6b906db
docs: add deprecation notice for the allSockets() method
2022-10-13 15:02:23 +02:00
Damien Arrachequesne
596eb88af7
ci: upgrade to actions/checkout@3 and actions/setup-node@3
...
Reference: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
2022-10-13 14:50:09 +02:00
Damien Arrachequesne
e357daf585
fix(typings): apply types to "io.timeout(...).emit()" calls
...
Typed events were not applied when calling "io.timeout(...).emit()".
Related: https://github.com/socketio/socket.io-client/issues/1555#issuecomment-1277289733
Reference: https://socket.io/docs/v4/typescript/
2022-10-13 14:50:09 +02:00
Damien Arrachequesne
10fa4a2690
refactor: add list of possible disconnection reasons
...
Note: some disconnection reasons could be merged in the next major
release, i.e. the Deno impl does not have "forced server close" and
"server shutting down"
Related: https://github.com/socketio/socket.io/issues/4387
2022-09-13 08:25:13 +02:00
Damien Arrachequesne
8be95b3bd3
chore(release): 4.5.2
...
Diff: https://github.com/socketio/socket.io/compare/4.5.1...4.5.2
4.5.2
2022-09-02 23:46:14 +01:00
Damien Arrachequesne
ba497ee3eb
fix(uws): prevent the server from crashing after upgrade
...
This should fix a rare case where the Engine.IO connection was upgraded
to WebSocket while the Socket.IO socket was disconnected, which would
result in the following exception:
> TypeError: Cannot read properties of undefined (reading 'forEach')
> at subscribe (/node_modules/socket.io/dist/uws.js:87:11)
> at Socket.<anonymous> (/node_modules/socket.io/dist/uws.js:28:17)
> at Socket.emit (node:events:402:35)
> at WebSocket.onPacket (/node_modules/engine.io/build/socket.js:214:22)
> at WebSocket.emit (node:events:390:28)
> at WebSocket.onPacket (/node_modules/engine.io/build/transport.js:92:14)
> at WebSocket.onData (/node_modules/engine.io/build/transport.js:101:14)
> at message (/node_modules/engine.io/build/userver.js:56:30)
Related: https://github.com/socketio/socket.io/issues/4443
2022-09-02 23:42:26 +01:00
Alex
28038715cb
ci: add explicit permissions to workflow ( #4466 )
...
Reference: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
2022-09-02 23:10:19 +01:00
Daniel Rosenwasser
134226e96c
refactor: add missing constraints ( #4431 )
...
See also: https://github.com/microsoft/TypeScript/issues/49489
2022-09-01 21:13:55 +01:00
Damien Arrachequesne
9890b036cf
chore: bump dependencies
...
Production:
- socket.io-parser: ~4.0.4 => ~4.2.0
Development:
- superagent: ^6.1.0 => ^8.0.0
- tsd: ^0.17.0 => ^0.21.0
Related: https://github.com/socketio/socket.io/issues/3709
2022-06-27 09:16:08 +02:00
Damien Arrachequesne
713a6b451b
chore: bump mocha to version 10.0.0
...
Related: https://github.com/socketio/socket.io/issues/3710
2022-06-27 09:00:31 +02:00
Damien Arrachequesne
18f3fdab12
fix: prevent the socket from joining a room after disconnection
...
Calling `socket.join()` after disconnection would lead to a memory
leak, because the room was never removed from the memory:
```js
io.on("connection", (socket) => {
socket.disconnect();
socket.join("room1"); // leak
});
```
Related:
- https://github.com/socketio/socket.io/issues/4067
- https://github.com/socketio/socket.io/issues/4380
2022-05-25 23:18:42 +02:00
Damien Arrachequesne
5ab8289c0a
chore(release): 4.5.1
...
Diff: https://github.com/socketio/socket.io/compare/4.5.0...4.5.1
4.5.1
2022-05-17 23:38:07 +02:00
Damien Arrachequesne
30430f0985
fix: forward the local flag to the adapter when using fetchSockets()
...
Related:
- https://github.com/socketio/socket.io/issues/4359
- https://github.com/socketio/socket.io-redis-adapter/issues/454
2022-05-03 15:41:24 +02:00
h110m
9b43c9167c
fix(typings): add HTTPS server to accepted types ( #4351 )
2022-05-03 08:15:22 +02:00
Damien Arrachequesne
8ecfcba5c1
chore(release): 4.5.0
...
Diff: https://github.com/socketio/socket.io/compare/4.4.1...4.5.0
4.5.0
2022-04-24 00:45:57 +02:00
Damien Arrachequesne
572133a58d
docs(examples): update example with webpack
2022-04-22 23:10:01 +02:00
Damien Arrachequesne
6e1bb62982
chore: bump engine.io to version 6.2.0
...
Release notes: https://github.com/socketio/engine.io/releases/tag/6.2.0
Diff: https://github.com/socketio/engine.io/compare/6.1.3...6.2.0
2022-04-22 22:43:31 +02:00
Damien Arrachequesne
06e6838b18
docs(examples): add server bundling example with rollup
...
Related: https://github.com/socketio/socket.io/issues/4329
2022-04-22 22:40:15 +02:00
WD
1f03a44d1f
docs(examples): update create-react-app example ( #4347 )
2022-04-20 22:47:34 +02:00
Damien Arrachequesne
be3d7f0f1f
docs(examples): add TODO example with Postgres and Node.js cluster
2022-04-07 12:35:00 +02:00
Damien Arrachequesne
d12aab2d69
docs(examples): add example with express-session
...
Related: https://github.com/socketio/socket.io/issues/3933
2022-04-02 11:08:26 +02:00
Damien Arrachequesne
9f758689f6
docs(examples): pin the version of karma-jasmine-html-reporter
...
Related:
- https://github.com/socketio/socket.io/issues/4325
- https://github.com/dfederm/karma-jasmine-html-reporter/issues/54
2022-04-01 14:42:34 +02:00
Damien Arrachequesne
0b35dc77c0
refactor: make the protocol implementation stricter
...
This commit handles several edge cases that were silently ignored
before:
- receiving several CONNECT packets during a session
- receiving any packet without CONNECT packet first
2022-03-31 12:24:31 +02:00
Damien Arrachequesne
531104d332
feat: add support for catch-all listeners for outgoing packets
...
This is similar to `onAny()`, but for outgoing packets.
Syntax:
```js
socket.onAnyOutgoing((event, ...args) => {
console.log(event);
});
```
2022-03-31 10:35:09 +02:00
Damien Arrachequesne
8b204570a9
feat: broadcast and expect multiple acks
...
Syntax:
```js
io.timeout(1000).emit("some-event", (err, responses) => {
// ...
});
```
The adapter exposes two additional methods:
- `broadcastWithAck(packets, opts, clientCountCallback, ack)`
Similar to `broadcast(packets, opts)`, but:
* `clientCountCallback()` is called with the number of clients that
received the packet (can be called several times in a cluster)
* `ack()` is called for each client response
- `serverCount()`
It returns the number of Socket.IO servers in the cluster (1 for the
in-memory adapter).
Those two methods will be implemented in the other adapters (Redis,
Postgres, MongoDB, ...).
Related:
- https://github.com/socketio/socket.io/issues/1811
- https://github.com/socketio/socket.io/issues/4163
- https://github.com/socketio/socket.io-redis-adapter/issues/445
2022-03-31 07:49:09 +02:00
Damien Arrachequesne
0b7d70ca42
chore: bump lockfile to v2
2022-03-30 08:15:41 +02:00
Szegedi Ádám
2f96438952
chore: bump engine.io version to fix CVE-2022-21676 ( #4262 )
...
Related: https://github.com/socketio/engine.io/security/advisories/GHSA-273r-mgr4-v34f
2022-01-25 22:18:18 +01:00
Chris Swithinbank
02c87a8561
fix(typings): ensure compatibility with TypeScript 3.x ( #4259 )
...
Labeled tuple elements were added in TypeScript 4.0.
Reference: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html#labeled-tuple-elements
Related: 44e20ba5bf
2022-01-25 01:25:05 +01:00
Damien Arrachequesne
37b6d8fff0
chore: update default label for bug reports
2022-01-10 08:55:56 +01:00
Damien Arrachequesne
af54565b2d
docs: remove broken badges
...
Related: https://github.com/socketio/socket.io/issues/4242
2022-01-10 08:03:53 +01:00
Damien Arrachequesne
aa5312a4b6
chore: revert to lockfile v1
...
Updating to v2 fails in the CI on Node.js 12 & 14 with the following
error:
> npm ERR! Error while executing:
> npm ERR! /usr/bin/git ls-remote -h -t ssh://git@github.com/uNetworking/uWebSockets.js.git
> npm ERR!
> npm ERR! Warning: Permanently added the RSA host key for IP address '140.82.113.3' to the list of known hosts.
> npm ERR! git@github.com: Permission denied (publickey).
> npm ERR! fatal: Could not read from remote repository.
> npm ERR!
> npm ERR! Please make sure you have the correct access rights
> npm ERR! and the repository exists.
> npm ERR!
> npm ERR! exited with error code: 128
So we will revert the change for now.
2022-01-06 08:01:00 +01:00
Damien Arrachequesne
c82a4bdf1f
chore(release): 4.4.1
...
Diff: https://github.com/socketio/socket.io/compare/4.4.0...4.4.1
4.4.1
2022-01-06 07:32:03 +01:00
Orkhan Alikhanov
770ee5949f
fix(types): make RemoteSocket.data type safe ( #4234 )
...
Related:
- https://github.com/socketio/socket.io/issues/4229
- fe8730ca0f
2022-01-06 07:14:55 +01:00
Damien Arrachequesne
3bf5d92735
refactor: add note about fetchSockets() for parent namespaces
...
Related: https://github.com/socketio/socket.io/issues/4235
2022-01-05 08:50:40 +01:00
Shayan Yousefi
fc82e44f73
refactor(typings): export Event type ( #4215 )
...
So that it can be used by the end users:
```ts
const myMiddleware = ([eventName, ...args]: Event, next: (err?: Error) => void) => {
console.log(eventName); // inferred as string
next();
}
io.on("connection", (socket) => {
socket.use(myMiddleware);
});
```
2022-01-05 08:08:18 +01:00
Damien Arrachequesne
c840bad43a
test: fix flaky tests
2022-01-05 08:00:55 +01:00
Orkhan Alikhanov
f2b8de7191
fix(typings): pass SocketData type to custom namespaces ( #4233 )
...
The `SocketData` type was only available on the main namespace.
Related: https://github.com/socketio/socket.io/issues/4229
See also: fe8730ca0f
2022-01-04 09:09:42 +01:00
Gray Zhang
51784d0305
chore: add types to exports field to be compatible with nodenext module resolution ( #4228 )
...
See [1] for detail, in `nodenext` module resolution it requires a
`types` field in `exports` with full filename including extension.
[1]: https://github.com/microsoft/TypeScript/issues/46770#issuecomment-966612103
2021-12-28 10:27:08 +01:00
Damien Arrachequesne
c196689545
docs: fix basic crud example
...
Related: https://github.com/socketio/socket.io/issues/4213
2021-12-16 23:00:20 +01:00
Mikhail Dudin
7a70f63499
docs: fix reconnection handling in the chat demo app ( #4189 )
2021-12-01 00:03:43 +01:00
anderslatif
e5897dd7dc
docs: add usage with ES modules ( #4195 )
2021-12-01 00:02:13 +01:00
Damien Arrachequesne
2071a66c5a
docs: simplify nginx cluster example
...
- remove useless Dockerfile
- clean format
- migrate to @socket.io/redis-adapter
2021-11-24 18:15:26 +01:00