|
2 | 2 |
|
3 | 3 | | Version | Date | |
4 | 4 | |--------------------------|---------------| |
| 5 | +| [0.3.0](#030-2026-02-09) | February 2026 | |
5 | 6 | | [0.2.3](#023-2025-11-25) | November 2025 | |
6 | 7 | | [0.2.2](#022-2024-05-08) | May 2024 | |
7 | 8 | | [0.2.1](#021-2024-03-11) | March 2024 | |
8 | 9 | | [0.2.0](#020-2024-02-21) | February 2024 | |
9 | 10 | | [0.1.0](#010-2023-04-06) | April 2023 | |
10 | 11 |
|
11 | 12 |
|
| 13 | +## [0.3.0](https://github.com/socketio/socket.io-redis-streams-adapter/compare/0.2.3...0.3.0) (2026-02-09) |
| 14 | + |
| 15 | + |
| 16 | +### Features |
| 17 | + |
| 18 | +#### Add multiplexing support |
| 19 | + |
| 20 | +The `streamCount` option is added to be able to use multiple Redis streams, allowing to split the load between several Redis nodes. |
| 21 | + |
| 22 | +Note: each namespace is routed to a specific stream to ensure the ordering of messages, so this option only improves scalability when using multiple namespaces. |
| 23 | + |
| 24 | +```js |
| 25 | +const io = new Server({ |
| 26 | + adapter: createAdapter(redisClient, { |
| 27 | + streamCount: 4 |
| 28 | + }) |
| 29 | +}); |
| 30 | +``` |
| 31 | + |
| 32 | +Added in [ee693d0](https://github.com/socketio/socket.io-redis-streams-adapter/commit/ee693d0024c20cc222e093b2cb9d240e24148875). |
| 33 | + |
| 34 | +#### Add option to skip hasBinary() checks |
| 35 | + |
| 36 | +The `onlyPlaintext` option allows skipping the `hasBinary()` checks during payload serialization (those checks are necessary as binary data must be base-64 encoded before being sent in the Redis stream). |
| 37 | + |
| 38 | +```js |
| 39 | +const io = new Server({ |
| 40 | + adapter: createAdapter(redisClient, { |
| 41 | + onlyPlaintext: true |
| 42 | + }) |
| 43 | +}); |
| 44 | +``` |
| 45 | + |
| 46 | +Added in [1f7e6fc](https://github.com/socketio/socket.io-redis-streams-adapter/commit/1f7e6fc18f58fd3d236d564f3a676c48384826e3). |
| 47 | + |
| 48 | +#### Make BLOCK timeout configurable () |
| 49 | + |
| 50 | +The `blockTimeInMs` option allows configuring the BLOCK timeout used when fetching data from the Redis stream: |
| 51 | + |
| 52 | +```js |
| 53 | +const io = new Server({ |
| 54 | + adapter: createAdapter(redisClient, { |
| 55 | + blockTimeInMs: 2_000 |
| 56 | + }) |
| 57 | +}); |
| 58 | +``` |
| 59 | + |
| 60 | +Added in [e7653c4](https://github.com/socketio/socket.io-redis-streams-adapter/commit/e7653c4f16eb0dd55f055cf75c989da60b1e3280). |
| 61 | + |
| 62 | +#### Use PUB/SUB for fetchSockets() and serverSideEmit() requests |
| 63 | + |
| 64 | +Redis PUB/SUB is now used for transient requests, instead of sending them in the Redis stream. |
| 65 | + |
| 66 | +Two new options: |
| 67 | + |
| 68 | +- `channelPrefix`: the prefix of the Redis PUB/SUB channels (defaults to "socket.io") |
| 69 | +- `useShardedPubSub`: whether to use sharded PUB/SUB (added in Redis 7.0) (defaults to false) |
| 70 | + |
| 71 | +Each server will use two PUB/SUB channels: |
| 72 | + |
| 73 | +- one common for receiving requests |
| 74 | +- one private for receiving responses |
| 75 | + |
| 76 | +Added in [dacb88d](https://github.com/socketio/socket.io-redis-streams-adapter/commit/dacb88dbd6a8475b34feb213155002caac6dfbc8). |
| 77 | + |
| 78 | + |
| 79 | + |
12 | 80 | ## [0.2.3](https://github.com/socketio/socket.io-redis-streams-adapter/compare/0.2.2...0.2.3) (2025-11-25) |
13 | 81 |
|
14 | 82 |
|
|
0 commit comments