Skip to content

Commit a059c81

Browse files
authored
Merge pull request aspnetboilerplate#4975 from aspnetboilerplate/pr/4944
Update abp.signalr-client.js
2 parents 965c85c + d8b84fd commit a059c81

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

src/Abp.Web.Resources/Abp/Framework/scripts/libs/abp.signalr-client.js

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,33 @@ var abp = abp || {};
99
// Create namespaces
1010
abp.signalr = abp.signalr || {};
1111
abp.signalr.hubs = abp.signalr.hubs || {};
12+
abp.signalr.reconnectTime = abp.signalr.reconnectTime || 5000;
13+
abp.signalr.maxTries = abp.signalr.maxTries || 8;
1214

1315
// Configure the connection for abp.signalr.hubs.common
1416
function configureConnection(connection) {
1517
// Set the common hub
1618
abp.signalr.hubs.common = connection;
1719

20+
let tries = 1;
21+
let reconnectTime = abp.signalr.reconnectTime;
22+
1823
// Reconnect loop
19-
function start() {
20-
connection.start().catch(function () {
21-
setTimeout(function () {
22-
start();
23-
}, 5000);
24-
});
24+
function tryReconnect() {
25+
if (tries > abp.signalr.maxTries) {
26+
return;
27+
} else {
28+
connection.start()
29+
.then(() => {
30+
reconnectTime = abp.signalr.reconnectTime;
31+
tries = 1;
32+
console.log('Reconnected to SignalR server!');
33+
}).catch(() => {
34+
tries += 1;
35+
reconnectTime *= 2;
36+
setTimeout(() => tryReconnect(), reconnectTime);
37+
});
38+
}
2539
}
2640

2741
// Reconnect if hub disconnects
@@ -36,7 +50,7 @@ var abp = abp || {};
3650
return;
3751
}
3852

39-
start();
53+
tryReconnect();
4054
});
4155

4256
// Register to get notifications
@@ -83,6 +97,7 @@ var abp = abp || {};
8397
var connection = new signalR.HubConnectionBuilder()
8498
.withUrl(url, transport)
8599
.build();
100+
86101
if (configureConnection && typeof configureConnection === 'function') {
87102
configureConnection(connection);
88103
}
@@ -110,5 +125,4 @@ var abp = abp || {};
110125
if (abp.signalr.autoConnect && !abp.signalr.hubs.common) {
111126
abp.signalr.connect();
112127
}
113-
114128
})();

src/Abp.Web.Resources/Abp/Framework/scripts/libs/abp.signalr-client.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)