chore(deps): update dependency socket.io to v4 #101
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.4.8
->^4.6.2
By merging this PR, the below issues will be automatically resolved and closed:
Release Notes
socketio/socket.io (socket.io)
v4.6.2
Compare Source
Bug Fixes
types
condition to the top (#4698) (3d44aae)Links
engine.io@~6.4.2
(diff)ws@~8.11.0
(no change)v4.6.1
Compare Source
Bug Fixes
Links
engine.io@~6.4.1
(diff)ws@~8.11.0
(no change)v4.6.0
Compare Source
Bug Fixes
Features
Promise-based acknowledgements
This commit adds some syntactic sugar around acknowledgements:
emitWithAck()
serverSideEmitWithAck()
Added in 184f3cf.
Connection state recovery
This feature allows a client to reconnect after a temporary disconnection and restore its state:
Usage:
Here's how it works:
id
attribute, which is public and can be freely shared)The in-memory adapter already supports this feature, and we will soon update the Postgres and MongoDB adapters. We will also create a new adapter based on Redis Streams, which will support this feature.
Added in 54d5ee0.
Compatibility (for real) with Express middlewares
This feature implements middlewares at the Engine.IO level, because Socket.IO middlewares are meant for namespace authorization and are not executed during a classic HTTP request/response cycle.
Syntax:
A workaround was possible by using the allowRequest option and the "headers" event, but this feels way cleaner and works with upgrade requests too.
Added in 24786e7.
Error details in the disconnecting and disconnect events
The
disconnect
event will now contain additional details about the disconnection reason.Added in 8aa9499.
Automatic removal of empty child namespaces
This commit adds a new option, "cleanupEmptyChildNamespaces". With this option enabled (disabled by default), when a socket disconnects from a dynamic namespace and if there are no other sockets connected to it then the namespace will be cleaned up and its adapter will be closed.
Added in 5d9220b.
A new "addTrailingSlash" option
The trailing slash which was added by default can now be disabled:
In the example above, the clients can omit the trailing slash and use
/socket.io
instead of/socket.io/
.Added in d0fd474.
Performance Improvements
Links:
engine.io@~6.4.0
(diff)ws@~8.11.0
(diff)v4.5.4
Compare Source
This release contains a bump of:
engine.io
in order to fix CVE-2022-41940socket.io-parser
in order to fix CVE-2022-2421.Links:
engine.io@~6.2.1
(diff)ws@~8.2.3
v4.5.3
Compare Source
Bug Fixes
Links:
~6.2.0
~8.2.3
v4.5.2
Compare Source
Bug Fixes
Links:
~6.2.0
~8.2.3
v4.5.1
Compare Source
Bug Fixes
Links:
~6.2.0
~8.2.3
v4.5.0
Compare Source
Bug Fixes
Features
This is similar to
onAny()
, but for outgoing packets.Syntax:
Syntax:
So that clients in HTTP long-polling can decide how many packets they have to send to stay under the maxHttpBufferSize
value.
This is a backward compatible change which should not mandate a new major revision of the protocol (we stay in v4), as
we only add a field in the JSON-encoded handshake data:
Links:
~6.2.0
(diff)~8.2.3
v4.4.1
Compare Source
Bug Fixes
RemoteSocket.data
type safe (#4234) (770ee59)SocketData
type to custom namespaces (#4233) (f2b8de7)Links:
~6.1.0
(diff)~8.2.3
v4.4.0
Compare Source
Bug Fixes
Features
socket.data
(#4159) (fe8730c)Links:
~6.1.0
(diff)~8.2.3
v4.3.2
Compare Source
Bug Fixes
Links:
~6.0.0
~8.2.3
v4.3.1
Compare Source
Bug Fixes
Links:
~6.0.0
~8.2.3
v4.3.0
Compare Source
For this release, most of the work was done on the client side, see here.
Bug Fixes
Features
Links:
~6.0.0
(diff)~8.2.3
(diff)v4.2.0
Compare Source
Bug Fixes
Features
Links:
~5.2.0
~7.4.2
v4.1.3
Compare Source
Bug Fixes
Links:
~5.1.0
~7.4.2
v4.1.2
Compare Source
Bug Fixes
Links:
~5.1.0
~7.4.2
v4.1.1
Compare Source
Bug Fixes
Links:
~5.1.0
~7.4.2
v4.1.0
Compare Source
Blog post: https://socket.io/blog/socket-io-4-1-0/
Features
engine.io
)engine.io
)Links:
~5.1.0
~7.4.2
v4.0.2
Compare Source
Bug Fixes
Links:
~5.0.0
~7.4.2
v4.0.1
Compare Source
Bug Fixes
Links:
~5.0.0
~7.4.2
v4.0.0
Compare Source
Blog post: https://socket.io/blog/socket-io-4-release/
Migration guide: https://socket.io/docs/v3/migrating-from-3-x-to-4-0/
Bug Fixes
Features
BREAKING CHANGES
io.to(...)
now returns an immutable operatorPreviously, broadcasting to a given room (by calling
io.to()
) would mutate the io instance, which could lead to surprising behaviors, like:Calling
io.to()
(or any other broadcast modifier) will now return an immutable instance.Links:
~5.0.0
~7.4.2
v3.1.2
Compare Source
Bug Fixes
Links:
~4.1.0
~7.4.2
v3.1.1
Compare Source
Bug Fixes
Links:
~4.1.0
~7.4.2
v3.1.0
Compare Source
In order to ease the migration to Socket.IO v3, the v3 server is now able to communicate with v2 clients:
Note: the
allowEIO3
refers to the version 3 of the Engine.IO protocol which is used in Socket.IO v2Features
Bug Fixes
Links:
~4.1.0
~7.4.2
v3.0.5
Compare Source
Bug Fixes
Reverts
Links:
~4.0.6
~7.4.2
v3.0.4
Compare Source
Links:
~4.0.0
^7.1.2
v3.0.3
Compare Source
Links:
~4.0.0
^7.1.2
v3.0.2
Compare Source
Bug Fixes
Links:
~4.0.0
^7.1.2
v3.0.1
Compare Source
Bug Fixes
Links:
~4.0.0
^7.1.2
v3.0.0
Compare Source
More details about this release in the blog post: https://socket.io/blog/socket-io-3-release/
Dedicated migration guide: https://socket.io/docs/migrating-from-2-x-to-3-0/
Bug Fixes
Features
BREAKING CHANGES
the Socket#use() method is removed (see 5c73733)
Socket#join() and Socket#leave() do not accept a callback argument anymore.
Before:
After:
Before:
The 'origins' option was used in the allowRequest method, in order to
determine whether the request should pass or not. And the Engine.IO
server would implicitly add the necessary Access-Control-Allow-xxx
headers.
After:
The already existing 'allowRequest' option can be used for validation:
Socket#rooms is now a Set instead of an object
Namespace#connected is now a Map instead of an object
there is no more implicit connection to the default namespace:
This method was kept for backward-compatibility with pre-1.0 versions.
Links:
~4.0.0
^7.1.2
v2.5.1
Compare Source
Bug Fixes
Links:
-
~3.6.0
(no change)~7.5.10
v2.5.0
Compare Source
The default value of the
maxHttpBufferSize
option has been decreased from 100 MB to 1 MB, in order to prevent attacks by denial of service.Security advisory: GHSA-j4f2-536g-r55m
Bug Fixes
Links:
~3.6.0
(diff)~7.4.2
v2.4.1
Compare Source
This release reverts the breaking change introduced in
2.4.0
(socketio/socket.io@f78a575).If you are using Socket.IO v2, you should explicitly allow/disallow cross-origin requests:
In any case, please consider upgrading to Socket.IO v3, where this security issue is now fixed (CORS is disabled by default).
Reverts
Links:
~3.5.0
~7.4.2
v2.4.0
Compare Source
Related blog post: https://socket.io/blog/socket-io-2-4-0/
Features (from Engine.IO)
Bug Fixes
Previously, CORS was enabled by default, which meant that a Socket.IO server sent the necessary CORS headers (
Access-Control-Allow-xxx
) to any domain. This will not be the case anymore, and you now have to explicitly enable it.Please note that you are not impacted if:
origins
option to restrict the list of allowed domainsThis commit also removes the support for '*' matchers and protocol-less URL:
To restore the previous behavior (please use with caution):
See also:
Thanks a lot to @ni8walk3r for the security report.
Links:
~3.5.0
~7.4.2
v2.3.0
Compare Source
This release mainly contains a bump of the
engine.io
andws
packages, but no additional features.Links:
~3.4.0
(diff: socketio/engine.io@3.3.1...3.4.2)^7.1.2
(diff: websockets/ws@6.1.2...7.3.1)v2.2.0
Compare Source
Features
Bug fixes
Links
~3.3.1
(diff: socketio/engine.io@3.2.0...3.3.1)~6.1.0
(diff: websockets/ws@3.3.1...6.1.2)v2.1.1
Compare Source
Features
Bug fixes
(client) fire an error event on middleware failure for non-root namespace (https://github.com/socketio/socket.io-client/pull/1202)
Links:
~3.2.0
~3.3.1
v2.1.0
Compare Source
Features
Bug fixes
Important note⚠️ from Engine.IO 3.2.0 release
There are two non-breaking changes that are somehow quite important:
ws
was reverted as the default wsEngine (https://github.com/socketio/engine.io/pull/550), as there was several blocking issues withuws
. You can still useuws
by runningnpm install uws --save
in your project and using thewsEngine
option:pingTimeout
now defaults to 5 seconds (instead of 60 seconds): https://github.com/socketio/engine.io/pull/551Links:
~3.2.0
(diff: socketio/engine.io@3.1.0...3.2.0)~3.3.1
(diff: websockets/ws@2.3.1...3.3.1)v2.0.4
Compare Source
Bug fixes
Links:
engine.io
: -ws
: -v2.0.3
Compare Source
Bug fixes
Links:
engine.io
: -ws
: -v2.0.2
Compare Source
Bug fixes
Links:
engine.io
: -ws
: -v2.0.1
Compare Source
Bug fixes
- update path of client file (#2934)
Links:
engine.io
: -ws
: -v2.0.0
Compare Source
This major release brings several performance improvements:
uws is now the default Websocket engine. It should bring significant improvement in performance (particularly in terms of memory consumption) (https://github.com/socketio/engine.io/releases/tag/2.0.0)
the Engine.IO and Socket.IO handshake packets were merged, reducing the number of roundtrips necessary to establish a connection. (#2833)
it is now possible to provide a custom parser according to the needs of your application (#2829). Please take a look at the example for more information.
Please note that this release is not backward-compatible, due to:
Please also note that if you are using a self-signed certificate,
rejectUnauthorized
now defaults totrue
(https://github.com/socketio/engine.io-client/pull/558).Finally, the API documentation is now in the repository (here), and the content of the website here. Do not hesitate if you see something wrong or missing!
The full list of changes: