Skip to content

Releases: socketio/socket.io

[email protected]

21 Sep 07:51
f00fc89
Compare
Choose a tag to compare

Bug Fixes

  • do not expose the TransformStream type (f9cb983)

2.5.1

19 Jun 09:36
88b2cdb
Compare
Choose a tag to compare

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

14 Mar 17:06
5017681
Compare
Choose a tag to compare

Bug Fixes

  • close the adapters when the server is closed (bf64870)
  • remove duplicate pipeline when serving bundle (e426f3e)

Links

4.7.4

12 Jan 10:39
6ab2509
Compare
Choose a tag to compare

Bug Fixes

  • typings: calling io.emit with no arguments incorrectly errored (cb6d2e0), closes #4914

Links

4.7.3

03 Jan 20:40
0d89319
Compare
Choose a tag to compare

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

4.7.2

02 Aug 23:57
c332643
Compare
Choose a tag to compare

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

4.7.1

28 Jun 07:37
2f6cc2f
Compare
Choose a tag to compare

The client bundle contains a few fixes regarding the WebTransport support.

Links

4.7.0

22 Jun 12:11
00d8ee5
Compare
Choose a tag to compare

Bug Fixes

  • remove the Partial modifier from the socket.data type (#4740) (e5c62ca)

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:

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

4.6.2

31 May 09:23
faf914c
Compare
Choose a tag to compare

Bug Fixes

  • exports: move types condition to the top (#4698) (3d44aae)

Links

4.6.1

20 Feb 16:55
7952312
Compare
Choose a tag to compare

Bug Fixes

  • properly handle manually created dynamic namespaces (0d0a7a2)
  • types: fix nodenext module resolution compatibility (#4625) (d0b22c6)

Links