forked fromsocketio/socket.io-redis-streams-adapter
- Notifications
You must be signed in to change notification settings - Fork0
The Socket.IO adapter based on Redis Streams, allowing to broadcast events between several Socket.IO servers.
License
NotificationsYou must be signed in to change notification settings
theknowledgepro/socket.io-redis-streams-adapter
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The@socket.io/redis-streams-adapter package allows broadcasting packets between multiple Socket.IO servers.
Table of contents
| Feature | socket.io version | Support |
|---|---|---|
| Socket management | 4.0.0 | ✅ YES (since version0.1.0) |
| Inter-server communication | 4.1.0 | ✅ YES (since version0.1.0) |
| Broadcast with acknowledgements | 4.5.0 | ✅ YES (since version0.1.0) |
| Connection state recovery | 4.6.0 | ✅ YES (since version0.1.0) |
npm install @socket.io/redis-streams-adapter redisimport{createClient}from"redis";import{Server}from"socket.io";import{createAdapter}from"@socket.io/redis-streams-adapter";constredisClient=createClient({url:"redis://localhost:6379"});awaitredisClient.connect();constio=newServer({adapter:createAdapter(redisClient)});io.listen(3000);
import{createCluster}from"redis";import{Server}from"socket.io";import{createAdapter}from"@socket.io/redis-streams-adapter";constredisClient=createCluster({rootNodes:[{url:"redis://localhost:7000",},{url:"redis://localhost:7001",},{url:"redis://localhost:7002",},],});awaitredisClient.connect();constio=newServer({adapter:createAdapter(redisClient)});io.listen(3000);
import{Redis}from"ioredis";import{Server}from"socket.io";import{createAdapter}from"@socket.io/redis-streams-adapter";constredisClient=newRedis();constio=newServer({adapter:createAdapter(redisClient)});io.listen(3000);
import{Cluster}from"ioredis";import{Server}from"socket.io";import{createAdapter}from"@socket.io/redis-streams-adapter";constredisClient=newCluster([{host:"localhost",port:7000,},{host:"localhost",port:7001,},{host:"localhost",port:7002,},]);constio=newServer({adapter:createAdapter(redisClient)});io.listen(3000);
| Name | Description | Default value |
|---|---|---|
streamName | The name of the Redis stream. | socket.io |
maxLen | The maximum size of the stream. Almost exact trimming (~) is used. | 10_000 |
readCount | The number of elements to fetch per XREAD call. | 100 |
sessionKeyPrefix | The prefix of the key used to store the Socket.IO session, when the connection state recovery feature is enabled. | sio:session: |
heartbeatInterval | The number of ms between two heartbeats. | 5_000 |
heartbeatTimeout | The number of ms without heartbeat before we consider a node down. | 10_000 |
The adapter will use aRedis stream to forward events between the Socket.IO servers.
Notes:
- a single stream is used for all namespaces
- the
maxLenoption allows to limit the size of the stream - unlike the adapter based on Redis PUB/SUB mechanism, this adapter will properly handle any temporary disconnection to the Redis server and resume the stream
- ifconnection state recovery is enabled, the sessions will be stored in Redis as a classic key/value pair
About
The Socket.IO adapter based on Redis Streams, allowing to broadcast events between several Socket.IO servers.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Languages
- TypeScript100.0%