1
- import { rtcWebSocket , rtcTimeout } from '@store/api/selectors'
1
+ import { rtcWebSocket , rtcTimeout , rtcConnectInterval } from '@store/api/selectors'
2
2
import { setRTCStatus , setConnectInterval , setRTCTimeout } from '@store/api/websocket'
3
3
import { RTCState } from '@utils/enums'
4
4
@@ -32,6 +32,9 @@ export const check = () => {
32
32
const initWebSocket = ( ) => {
33
33
setRTCStatus ( RTCState . CONNECTING )
34
34
rtcWebSocket ( ) . onopen = ( ) => {
35
+ setRTCTimeout ( 250 ) // reset timer to 250 on open of websocket connection
36
+ clearTimeout ( rtcConnectInterval ( ) ) // clear Interval on open of websocket connection
37
+
35
38
setRTCStatus ( RTCState . CONNECTED )
36
39
setInterval ( ( ) => {
37
40
sendToRTCServer ( {
@@ -43,6 +46,8 @@ const initWebSocket = () => {
43
46
} ,
44
47
} )
45
48
} , 1000 * 10 )
49
+
50
+ console . log ( '[WebSocket Client]: Connection Opened' )
46
51
}
47
52
//* TODO: Add notification to the user
48
53
rtcWebSocket ( ) . onerror = ( e ) => {
@@ -52,17 +57,17 @@ const initWebSocket = () => {
52
57
}
53
58
//* TODO: Add notification to the user
54
59
rtcWebSocket ( ) . onclose = ( e ) => {
55
- //increment retry interval
56
- setRTCTimeout ( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) )
57
- //call check function after timeout
58
- setConnectInterval ( setTimeout ( check , Math . min ( 10000 , rtcTimeout ( ) as number ) ) )
59
60
console . log (
60
61
`[WebSocket Client]: Socket is closed. Reconnect will be attempted in ${ Math . min (
61
62
10000 / 1000 ,
62
63
( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) ) / 1000 ,
63
64
) } second.`,
64
65
e . reason ,
65
66
)
67
+ //increment retry interval
68
+ setRTCTimeout ( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) )
69
+ //call check function after timeout
70
+ setConnectInterval ( setTimeout ( check , Math . min ( 10000 , rtcTimeout ( ) as number ) ) )
66
71
}
67
72
}
68
73
0 commit comments