Skip to content

Releases: socketio/engine.io

6.6.0

21 Jun 12:38
791aa58
Compare
Choose a tag to compare

Bug Fixes

  • fix websocket and webtransport send callbacks (#699) (fc21c4a)
  • properly call the send callback during upgrade (362bc78)
  • types: make socket.request writable (#697) (0efa04b)

Performance Improvements

  • do not reset the hearbeat timer on each packet (5359bae)
  • websocket: use bound callbacks (9a68c8c)

Credits

Huge thanks to Jonathan Perret for their contributions!

Links

6.5.5

18 Jun 08:06
0cb977a
Compare
Choose a tag to compare

This release contains a bump of the ws dependency, which includes an important security fix.

Advisory: GHSA-3h5v-q93c-6h6q

Bug Fixes

Links

3.6.2

18 Jun 08:32
b5e5b05
Compare
Choose a tag to compare

This release contains a bump of the ws dependency, which includes an important security fix.

Advisory: GHSA-3h5v-q93c-6h6q

Links

6.5.4

09 Nov 17:09
ff0fbfb
Compare
Choose a tag to compare

This release contains some minor changes which should improve the memory usage of the server, notably this.

Links

6.5.3

06 Nov 22:11
2da559a
Compare
Choose a tag to compare

Bug Fixes

  • improve compatibility with node16 module resolution (#689) (c6bf8c0)
  • webtransport: properly handle abruptly closed connections (ff1c861)

Links

6.5.2

02 Aug 21:50
12ca32b
Compare
Choose a tag to compare

Bug Fixes

  • webtransport: add proper framing (a306db0)

Links

6.5.1

27 Jun 07:16
98915d0
Compare
Choose a tag to compare

Bug Fixes

  • prevent crash when accessing TextDecoder (#684) (6dd2bc4)

Credits

Huge thanks to @iowaguy for helping!

Links

6.5.0

16 Jun 09:41
1f640a2
Compare
Choose a tag to compare

Bug Fixes

  • uws: discard any write to an aborted uWS response (#682) (3144d27)

Features

Support for WebTransport

The Engine.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 "engine.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 engine = new Server({
  transports: ["polling", "websocket", "webtransport"] // WebTransport is not enabled by default
});

engine.attach(httpsServer);

const h3Server = new Http3Server({
  port: 3000,
  host: "0.0.0.0",
  secret: "changeit",
  cert,
  privKey: key,
});

(async () => {
  const stream = await h3Server.sessionStream("/engine.io/");
  const sessionReader = stream.getReader();

  while (true) {
    const { done, value } = await sessionReader.read();
    if (done) {
      break;
    }
    engine.onWebTransportSession(value);
  }
})();

h3Server.startServer();

Added in 123b68c.

Credits

Huge thanks to @OxleyS for helping!

Links

6.4.2

01 May 23:29
95e2153
Compare
Choose a tag to compare

⚠️ This release contains an important security fix ⚠️

A malicious client could send a specially crafted HTTP request, triggering an uncaught exception and killing the Node.js process:

TypeError: Cannot read properties of undefined (reading 'handlesUpgrades')
  at Server.onWebSocket (build/server.js:515:67)

Please upgrade as soon as possible.

Bug Fixes

  • include error handling for Express middlewares (#674) (9395782)
  • prevent crash when provided with an invalid query param (fc480b4)
  • typings: make clientsCount public (#675) (bd6d471)
  • uws: prevent crash when using with middlewares (8b22162)

Credits

Huge thanks to @tyilo and @cieldeville for helping!

Links

6.4.1

19 Feb 23:56
7033c0e
Compare
Choose a tag to compare

This release contains 6e78489, which exports the BaseServer class in order to restore the compatibility with the nodenext module resolution strategy of TypeScript.

Reference: https://www.typescriptlang.org/tsconfig/#moduleResolution

Related: socketio/socket.io#4621

Links

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy