Skip to content

Commit a1a44a6

Browse files
authored
Merge pull request #113 from buggregator/bugfix/normalize-ws-connections
fix ws reconnections calls
2 parents 4bb0414 + ab0c61a commit a1a44a6

File tree

1 file changed

+37
-16
lines changed

1 file changed

+37
-16
lines changed

src/shared/lib/io/centrifuge.ts

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,47 @@ import { logger } from "./logger";
55
type TUseCentrifuge = () => {
66
centrifuge: Centrifuge
77
}
8-
export const useCentrifuge: TUseCentrifuge = () => {
9-
const centrifuge = new Centrifuge(WS_URL)
108

11-
centrifuge.on('connected', (ctx) => {
12-
logger(['connected', ctx]);
13-
});
9+
class WSConnection {
10+
private readonly centrifuge: Centrifuge;
1411

15-
centrifuge.on('publication', (ctx) => {
16-
logger(['publication', ctx]);
17-
});
12+
// eslint-disable-next-line no-use-before-define
13+
private static instance: WSConnection;
1814

19-
centrifuge.on('disconnected', (ctx) => {
20-
logger(['disconnected', ctx]);
21-
});
15+
private constructor() {
16+
this.centrifuge = new Centrifuge(WS_URL);
2217

23-
centrifuge.on('error', (ctx) => {
24-
logger(['error', ctx]);
25-
})
18+
this.centrifuge.on('connected', (ctx) => {
19+
logger(['connected', ctx]);
20+
});
2621

27-
centrifuge.connect();
22+
this.centrifuge.on('publication', (ctx) => {
23+
logger(['publication', ctx]);
24+
});
2825

29-
return { centrifuge }
26+
this.centrifuge.on('disconnected', (ctx) => {
27+
logger(['disconnected', ctx]);
28+
});
29+
30+
this.centrifuge.on('error', (ctx) => {
31+
logger(['error', ctx]);
32+
})
33+
34+
this.centrifuge.connect();
35+
}
36+
37+
public static getInstance(): WSConnection {
38+
if (!WSConnection.instance) {
39+
WSConnection.instance = new WSConnection();
40+
}
41+
42+
return WSConnection.instance;
43+
}
44+
45+
public getCentrifuge () {
46+
return this.centrifuge;
47+
}
3048
}
49+
50+
51+
export const useCentrifuge: TUseCentrifuge = () => ({ centrifuge: WSConnection.getInstance().getCentrifuge() })

0 commit comments

Comments
 (0)