@@ -11,16 +11,20 @@ const sendToRTCServer = (msg: IWebRTCMessage) => {
11
11
console . error ( '[sendToRTCServer]: Message is null or undefined' )
12
12
return
13
13
}
14
- rtcWebSocket ( ) . send ( JSON . stringify ( msg ) )
14
+ rtcWebSocket ( ) . forEach ( ( element ) => {
15
+ element . send ( JSON . stringify ( msg ) )
16
+ } )
15
17
}
16
18
17
19
export const check = ( ) => {
18
20
const ws = rtcWebSocket ( )
19
- if ( ! ws || ws . readyState == WebSocket . CLOSED ) {
20
- //check if websocket instance is closed, if so call `init` function.
21
- setRTCStatus ( RTCState . DISCONNECTED )
22
- initWebSocket ( )
23
- }
21
+ ws . forEach ( ( element ) => {
22
+ if ( ! element || element . readyState == WebSocket . CLOSED ) {
23
+ //check if websocket instance is closed, if so call `init` function.
24
+ setRTCStatus ( RTCState . DISCONNECTED )
25
+ initWebSocket ( )
26
+ }
27
+ } )
24
28
}
25
29
26
30
/********************************* connect *************************************/
@@ -31,44 +35,52 @@ export const check = () => {
31
35
*/
32
36
const initWebSocket = ( ) => {
33
37
setRTCStatus ( RTCState . CONNECTING )
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
38
+ rtcWebSocket ( ) . forEach ( ( element ) => {
39
+ element . onopen = ( ) => {
40
+ setRTCTimeout ( 250 ) // reset timer to 250 on open of websocket connection
41
+ clearTimeout ( rtcConnectInterval ( ) ) // clear Interval on open of websocket connection
37
42
38
- setRTCStatus ( RTCState . CONNECTED )
39
- setInterval ( ( ) => {
40
- sendToRTCServer ( {
41
- msg : {
42
- msg_type : 'heartbeat' ,
43
- receiver : '' ,
44
- sender : '' ,
45
- msg : '' ,
46
- } ,
47
- } )
48
- } , 1000 * 10 )
43
+ setRTCStatus ( RTCState . CONNECTED )
44
+ setInterval ( ( ) => {
45
+ sendToRTCServer ( {
46
+ msg : {
47
+ msg_type : 'heartbeat' ,
48
+ receiver : '' ,
49
+ sender : '' ,
50
+ msg : '' ,
51
+ } ,
52
+ } )
53
+ } , 1000 * 10 )
49
54
50
- console . log ( '[WebSocket Client]: Connection Opened' )
51
- }
55
+ console . log ( '[WebSocket Client]: Connection Opened' )
56
+ }
57
+ } )
52
58
//* TODO: Add notification to the user
53
- rtcWebSocket ( ) . onerror = ( e ) => {
54
- setRTCStatus ( RTCState . ERROR )
55
- console . error ( '[WebSocket Client]: Socket encountered error: ' , e , 'Closing socket' )
56
- rtcWebSocket ( ) . close ( )
57
- }
59
+ rtcWebSocket ( ) . forEach ( ( element ) => {
60
+ element . onerror = ( e ) => {
61
+ setRTCStatus ( RTCState . ERROR )
62
+ console . error ( '[WebSocket Client]: Socket encountered error: ' , e , 'Closing socket' )
63
+ rtcWebSocket ( ) . forEach ( ( element ) => {
64
+ element . close ( )
65
+ } )
66
+ }
67
+ } )
58
68
//* TODO: Add notification to the user
59
- rtcWebSocket ( ) . onclose = ( e ) => {
60
- console . log (
61
- `[WebSocket Client]: Socket is closed. Reconnect will be attempted in ${ Math . min (
62
- 10000 / 1000 ,
63
- ( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) ) / 1000 ,
64
- ) } second.`,
65
- e . reason ,
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 ) ) )
71
- }
69
+ rtcWebSocket ( ) . forEach ( ( element ) => {
70
+ element . onclose = ( e ) => {
71
+ console . log (
72
+ `[WebSocket Client]: Socket is closed. Reconnect will be attempted in ${ Math . min (
73
+ 10000 / 1000 ,
74
+ ( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) ) / 1000 ,
75
+ ) } second.`,
76
+ e . reason ,
77
+ )
78
+ //increment retry interval
79
+ setRTCTimeout ( ( rtcTimeout ( ) as number ) + ( rtcTimeout ( ) as number ) )
80
+ //call check function after timeout
81
+ setConnectInterval ( setTimeout ( check , Math . min ( 10000 , rtcTimeout ( ) as number ) ) )
82
+ }
83
+ } )
72
84
}
73
85
74
86
export { sendToRTCServer , initWebSocket }
0 commit comments