@@ -20,7 +20,7 @@ const pingintervalInMilliseconds = 30000;
20
20
const websocketSettings : Options = {
21
21
retryOnError : true ,
22
22
reconnectAttempts : 10 ,
23
- reconnectInterval : 3000 ,
23
+ reconnectInterval : 10000 ,
24
24
shouldReconnect : ( closeEvent : any ) => {
25
25
console . log ( closeEvent ) ;
26
26
return true ;
@@ -45,9 +45,17 @@ const useWebsocketServiceWithAuth = <T extends object>(endpoint: string): SurfWe
45
45
} , [ baseUrl , auth . userData ?. access_token ] ) ;
46
46
47
47
useEffect ( ( ) => {
48
- const pingInterval = setInterval ( ( ) => sendMessage ( pingMessage ) , pingintervalInMilliseconds ) ;
49
- return ( ) => clearInterval ( pingInterval ) ;
50
- } , [ sendMessage ] ) ;
48
+ let pingInterval : NodeJS . Timeout | undefined = undefined ;
49
+
50
+ if ( readyState === ReadyState . OPEN ) {
51
+ pingInterval = setInterval ( ( ) => sendMessage ( pingMessage ) , pingintervalInMilliseconds ) ;
52
+ } else {
53
+ pingInterval && clearInterval ( pingInterval ) ;
54
+ pingInterval = undefined ;
55
+ }
56
+
57
+ return ( ) => pingInterval && clearInterval ( pingInterval ) ;
58
+ } , [ sendMessage , readyState ] ) ;
51
59
52
60
useEffect ( ( ) => {
53
61
if ( lastMessage && lastMessage . data === "__pong__" ) {
@@ -64,17 +72,21 @@ const useWebsocketServiceWithoutAuth = <T extends object>(endpoint: string): Sur
64
72
const [ useFallback , setUsefallback ] = useState < boolean > ( false ) ;
65
73
66
74
useEffect ( ( ) => {
67
- if ( readyState === ReadyState . CLOSED ) {
68
- setUsefallback ( true ) ;
69
- } else {
70
- setUsefallback ( false ) ;
71
- }
75
+ setUsefallback ( readyState === ReadyState . CLOSED ) ;
72
76
} , [ readyState ] ) ;
73
77
74
78
useEffect ( ( ) => {
75
- const pingInterval = setInterval ( ( ) => sendMessage ( pingMessage ) , pingintervalInMilliseconds ) ;
76
- return ( ) => clearInterval ( pingInterval ) ;
77
- } , [ sendMessage ] ) ;
79
+ let pingInterval : NodeJS . Timeout | undefined = undefined ;
80
+
81
+ if ( readyState === ReadyState . OPEN ) {
82
+ pingInterval = setInterval ( ( ) => sendMessage ( pingMessage ) , pingintervalInMilliseconds ) ;
83
+ } else {
84
+ pingInterval && clearInterval ( pingInterval ) ;
85
+ pingInterval = undefined ;
86
+ }
87
+
88
+ return ( ) => pingInterval && clearInterval ( pingInterval ) ;
89
+ } , [ sendMessage , readyState ] ) ;
78
90
79
91
useEffect ( ( ) => {
80
92
if ( lastMessage && lastMessage . data === "__pong__" ) {
0 commit comments