Skip to content

Commit 6ba02c0

Browse files
committedJan 4, 2022
chore: bump redis to version ^4.0.1
See also: https://github.com/redis/node-redis/blob/master/docs/v3-to-v4.md
1 parent accf344 commit 6ba02c0

File tree

5 files changed

+193
-96
lines changed

5 files changed

+193
-96
lines changed
 

‎.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212

1313
strategy:
1414
matrix:
15-
node-version: [10.x, 12.x, 14.x]
15+
node-version: [12.x, 16.x]
1616

1717
services:
1818
redis:

‎Readme.md

+35-9
Original file line numberDiff line numberDiff line change
@@ -44,15 +44,37 @@ The current version is compatible with both:
4444

4545
## How to use
4646

47+
Installation:
48+
49+
```
50+
npm i @socket.io/redis-emitter redis
51+
```
52+
4753
### CommonJS
4854

49-
Installation: `npm i @socket.io/redis-emitter redis`
55+
```js
56+
const { Emitter } = require("@socket.io/redis-emitter");
57+
const { createClient } = require("redis"); // not included, needs to be explicitly installed
58+
59+
const redisClient = createClient();
60+
61+
redisClient.connect().then(() => {
62+
const io = new Emitter(redisClient);
63+
64+
setInterval(() => {
65+
io.emit("time", new Date);
66+
}, 5000);
67+
})
68+
```
69+
70+
With `redis@3`, calling `connect()` is not needed:
5071

5172
```js
5273
const { Emitter } = require("@socket.io/redis-emitter");
5374
const { createClient } = require("redis"); // not included, needs to be explicitly installed
5475

5576
const redisClient = createClient();
77+
5678
const io = new Emitter(redisClient);
5779

5880
setInterval(() => {
@@ -62,18 +84,19 @@ setInterval(() => {
6284

6385
### TypeScript
6486

65-
Installation: `npm i @socket.io/redis-emitter redis @types/redis`
66-
6787
```ts
6888
import { Emitter } from "@socket.io/redis-emitter";
6989
import { createClient } from "redis";
7090

7191
const redisClient = createClient();
72-
const io = new Emitter(redisClient);
7392

74-
setInterval(() => {
75-
io.emit("time", new Date);
76-
}, 5000);
93+
redisClient.connect().then(() => {
94+
const io = new Emitter(redisClient);
95+
96+
setInterval(() => {
97+
io.emit("time", new Date);
98+
}, 5000);
99+
});
77100
```
78101

79102
With typed events:
@@ -87,9 +110,12 @@ interface Events {
87110
}
88111

89112
const redisClient = createClient();
90-
const io = new Emitter<Events>(redisClient);
91113

92-
io.emit("basicEmit", 1, "2", [3]);
114+
redisClient.connect().then(() => {
115+
const io = new Emitter<Events>(redisClient);
116+
117+
io.emit("basicEmit", 1, "2", [3]);
118+
});
93119
```
94120

95121
## Emit cheatsheet

‎package-lock.json

+140-73
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@
2424
"socket.io-parser": "~4.0.4"
2525
},
2626
"devDependencies": {
27-
"@socket.io/redis-adapter": "^7.0.0",
27+
"@socket.io/redis-adapter": "^7.1.0",
2828
"@types/mocha": "^8.2.1",
2929
"@types/node": "^14.14.35",
30-
"@types/redis": "^2.8.28",
3130
"expect.js": "~0.3.1",
3231
"mocha": "^9.1.3",
3332
"nyc": "^15.1.0",
3433
"prettier": "^2.2.1",
35-
"redis": "^3.0.2",
34+
"redis": "^4.0.1",
3635
"socket.io": "^4.1.1",
3736
"socket.io-client": "^4.1.1",
3837
"ts-node": "^9.1.1",

‎test/index.ts

+15-10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import expect = require("expect.js");
2-
import { createClient, RedisClient } from "redis";
2+
import { createClient, RedisClientType } from "redis";
33
import { Server, Socket } from "socket.io";
44
import { io as ioc, Socket as ClientSocket } from "socket.io-client";
55
import { createAdapter } from "@socket.io/redis-adapter";
@@ -31,18 +31,20 @@ const createPartialDone = (
3131
describe("emitter", () => {
3232
let port: number,
3333
io: Server,
34-
pubClient: RedisClient,
35-
subClient: RedisClient,
34+
pubClient: RedisClientType<any, any>,
35+
subClient: RedisClientType<any, any>,
3636
serverSockets: Socket[],
3737
clientSockets: ClientSocket[],
3838
emitter: Emitter;
3939

40-
beforeEach((done) => {
40+
beforeEach(async () => {
4141
const httpServer = createServer();
4242

4343
pubClient = createClient();
4444
subClient = createClient();
4545

46+
await Promise.all([pubClient.connect(), subClient.connect()]);
47+
4648
io = new Server(httpServer, {
4749
adapter: createAdapter(pubClient, subClient),
4850
});
@@ -56,14 +58,17 @@ describe("emitter", () => {
5658
});
5759

5860
serverSockets = [];
59-
io.on("connection", (socket) => {
60-
serverSockets.push(socket);
61-
if (serverSockets.length === SOCKETS_COUNT) {
62-
setTimeout(done, 100);
63-
}
64-
});
6561

6662
emitter = new Emitter(pubClient);
63+
64+
return new Promise((resolve) => {
65+
io.on("connection", (socket) => {
66+
serverSockets.push(socket);
67+
if (serverSockets.length === SOCKETS_COUNT) {
68+
setTimeout(resolve, 100);
69+
}
70+
});
71+
});
6772
});
6873

6974
afterEach(() => {

0 commit comments

Comments
 (0)
Please sign in to comment.