File tree 1 file changed +17
-4
lines changed
1 file changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ const Mutex = require('async-mutex').Mutex;
37
37
*/
38
38
var connections = [ ] ;
39
39
const getClientMutex = new Mutex ( ) ;
40
-
40
+ var numRetry = 0 ;
41
41
42
42
43
43
async function getToken ( connectionConfig ) {
@@ -239,13 +239,26 @@ async function updateToken(connectionConfig) {
239
239
if ( user !== - 1 ) {
240
240
var tokenInfo = await getToken ( connectionConfig ) ;
241
241
if ( tokenInfo !== undefined ) {
242
+ numRetry = 0 ;
242
243
connections [ user ] . token = tokenInfo . token ;
243
244
connections [ user ] . expires_token_ts = tokenInfo . expires_in ;
244
- connections [ user ] . clientMqtt . updateToken ( tokenInfo . token ) ;
245
- connections [ user ] . clientHttp . updateToken ( tokenInfo . token ) ;
245
+ if ( connections [ user ] . clientMqtt ) {
246
+ connections [ user ] . clientMqtt . updateToken ( tokenInfo . token ) ;
247
+ }
248
+ if ( connections [ user ] . clientHttp ) {
249
+ connections [ user ] . clientHttp . updateToken ( tokenInfo . token ) ;
250
+ }
246
251
connections [ user ] . timeoutUpdateToken = setTimeout ( ( ) => { updateToken ( connectionConfig ) } , tokenInfo . expires_in * 1000 ) ;
247
252
} else {
248
- connections [ user ] . timeoutUpdateToken = setTimeout ( ( ) => { updateToken ( connectionConfig ) } , 1000 ) ;
253
+ /*Avoid too many requests addressed to server*/
254
+ if ( numRetry < 3 ) {
255
+ connections [ user ] . timeoutUpdateToken = setTimeout ( ( ) => { updateToken ( connectionConfig ) } , 5000 ) ;
256
+ }
257
+ else {
258
+ connections [ user ] . timeoutUpdateToken = setTimeout ( ( ) => { updateToken ( connectionConfig ) } , 60000 ) ;
259
+ }
260
+
261
+ numRetry ++ ;
249
262
}
250
263
}
251
264
} catch ( err ) {
You can’t perform that action at this time.
0 commit comments