Skip to content

Commit 0b82808

Browse files
Merge pull request #1119 from Chia-Network/develop
release: 1.2.8
2 parents 4c59e55 + 8131c47 commit 0b82808

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "cadt-ui",
3-
"version": "1.2.7",
3+
"version": "1.2.8",
44
"private": true,
55
"author": "Chia Network Inc. <[email protected]>",
66
"homepage": "./",

src/store/actions/socket.js

+28-6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const SOCKET_STATUS = keyMirror(
2424
let socket;
2525
let interval;
2626
let reconnectInterval = 1000;
27+
let reconnectAttempts = 0;
2728

2829
const notifyRefresh = _.debounce(dispatch => {
2930
NotificationManager.info(
@@ -33,7 +34,7 @@ const notifyRefresh = _.debounce(dispatch => {
3334
() => dispatch(refreshApp(true)),
3435
true,
3536
);
36-
}, 100);
37+
}, 1000);
3738

3839
const initListenersForEachMessageType = dispatch => {
3940
Object.keys(messageTypes).forEach(key => {
@@ -84,20 +85,35 @@ export const emitAction = actionCreator => {
8485
};
8586

8687
const reconnectSocket = _.debounce(dispatch => {
87-
if (!socket || (socket && !socket.connected)) {
88+
if (reconnectAttempts <= 10 && (!socket || !socket.connected)) {
89+
console.log(
90+
'Attempting to reconnect to socket server...',
91+
reconnectAttempts,
92+
);
8893
dispatch(initiateSocket());
8994
setTimeout(() => {
90-
if (!socket || (socket && !socket.connected)) {
95+
if (!socket || !socket.connected) {
9196
reconnectSocket(dispatch);
9297
}
93-
reconnectInterval = reconnectInterval * 2;
98+
reconnectInterval *= 2;
9499
}, reconnectInterval);
100+
} else if (reconnectAttempts > 10) {
101+
console.log("Couldn't connect to socket server. Max attempts reached.");
102+
dispatch(setSocketStatus(SOCKET_STATUS.OFFLINE));
103+
104+
clearInterval(interval);
95105
}
96-
}, 100);
106+
}, 1000);
97107

98108
export const initiateSocket = remoteHost => {
99109
disconnectSocket();
100110

111+
if (reconnectAttempts > 10) {
112+
return;
113+
}
114+
115+
reconnectAttempts++;
116+
101117
const WS_HOST = `${remoteHost || constants.API_HOST}/ws`;
102118
const transports = ['websocket'];
103119

@@ -158,16 +174,22 @@ export const initiateSocket = remoteHost => {
158174
console.log('Attempting to connect to socket_id: ', socket.id);
159175
console.log('### Socket Connected ###');
160176
dispatch(setSocketStatus(SOCKET_STATUS.CONNECTED));
177+
reconnectAttempts = 0;
161178
socket.emit('authentication');
162179
});
163180

164181
initListenersForEachMessageType(dispatch);
165182

166183
interval = setInterval(() => {
167-
if (!socket || (socket && !socket.connected)) {
184+
if (reconnectAttempts <= 10 && (!socket || !socket.connected)) {
168185
dispatch(setSocketStatus(SOCKET_STATUS.OFFLINE));
169186
clearInterval(interval);
170187
reconnectSocket(dispatch);
188+
} else if (reconnectAttempts > 10) {
189+
console.log("Couldn't connect to socket server. Max attempts reached.");
190+
dispatch(setSocketStatus(SOCKET_STATUS.OFFLINE));
191+
clearInterval(interval);
192+
disconnectSocket();
171193
}
172194
}, 5000);
173195
};

0 commit comments

Comments
 (0)