Releases: socketio/socket.io
Releases · socketio/socket.io
[email protected]
Bug Fixes
- do not expose the TransformStream type (f9cb983)
2.5.1
Bug Fixes
- add a noop handler for the error event (d30630b)
Links:
- Diff: 2.5.0...2.5.1
- Client release:
-
- engine.io version:
~3.6.0
(no change) - ws version:
~7.5.10
4.7.5
Bug Fixes
- close the adapters when the server is closed (bf64870)
- remove duplicate pipeline when serving bundle (e426f3e)
Links
- Diff: 4.7.4...4.7.5
- Client release: 4.7.5
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)
4.7.4
Bug Fixes
Links
- Diff: 4.7.3...4.7.4
- Client release: 4.7.4
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)
4.7.3
Bug Fixes
- return the first response when broadcasting to a single socket (#4878) (df8e70f)
- typings: allow to bind to a non-secure Http2Server (#4853) (8c9ebc3)
Links
- Diff: 4.7.2...4.7.3
- Client release: 4.7.3
engine.io@~6.5.2
(no change)ws@~8.11.0
(no change)
4.7.2
Bug Fixes
- clean up child namespace when client is rejected in middleware (#4773) (0731c0d)
- webtransport: properly handle WebTransport-only connections (3468a19)
- webtransport: add proper framing (a306db0)
Links
- Diff: 4.7.1...4.7.2
- Client release: 4.7.2
engine.io@~6.5.2
(diff)ws@~8.11.0
(no change)
4.7.1
The client bundle contains a few fixes regarding the WebTransport support.
Links
- Diff: 4.7.0...4.7.1
- Client release: 4.7.1
engine.io@~6.5.0
(no change)ws@~8.11.0
(no change)
4.7.0
Bug Fixes
Features
Support for WebTransport
The Socket.IO server can now use WebTransport as the underlying transport.
WebTransport is a web API that uses the HTTP/3 protocol as a bidirectional transport. It's intended for two-way communications between a web client and an HTTP/3 server.
References:
- https://w3c.github.io/webtransport/
- https://developer.mozilla.org/en-US/docs/Web/API/WebTransport
- https://developer.chrome.com/articles/webtransport/
Until WebTransport support lands in Node.js, you can use the @fails-components/webtransport
package:
import { readFileSync } from "fs";
import { createServer } from "https";
import { Server } from "socket.io";
import { Http3Server } from "@fails-components/webtransport";
// WARNING: the total length of the validity period MUST NOT exceed two weeks (https://w3c.github.io/webtransport/#custom-certificate-requirements)
const cert = readFileSync("/path/to/my/cert.pem");
const key = readFileSync("/path/to/my/key.pem");
const httpsServer = createServer({
key,
cert
});
httpsServer.listen(3000);
const io = new Server(httpsServer, {
transports: ["polling", "websocket", "webtransport"] // WebTransport is not enabled by default
});
const h3Server = new Http3Server({
port: 3000,
host: "0.0.0.0",
secret: "changeit",
cert,
privKey: key,
});
(async () => {
const stream = await h3Server.sessionStream("/socket.io/");
const sessionReader = stream.getReader();
while (true) {
const { done, value } = await sessionReader.read();
if (done) {
break;
}
io.engine.onWebTransportSession(value);
}
})();
h3Server.startServer();
Added in 123b68c.
Client bundles with CORS headers
The bundles will now have the right Access-Control-Allow-xxx
headers.
Added in 63f181c.
Links
- Diff: 4.6.2...4.7.0
- Client release: 4.7.0
engine.io@~6.5.0
(diff)ws@~8.11.0
(no change)
4.6.2
Bug Fixes
Links
- Diff: 4.6.1...4.6.2
- Client release: 4.6.2
engine.io@~6.4.2
(diff)ws@~8.11.0
(no change)
4.6.1
Bug Fixes
- properly handle manually created dynamic namespaces (0d0a7a2)
- types: fix nodenext module resolution compatibility (#4625) (d0b22c6)
Links
- Diff: 4.6.0...4.6.1
- Client release: 4.6.1
engine.io@~6.4.1
(diff)ws@~8.11.0
(no change)