@@ -17,22 +17,42 @@ You can learn more about countries [here](/docs/core-concepts/residence-list)
17
17
18
18
To get countries list, please update the ` open ` event listener like so:
19
19
20
- ``` js
20
+ ``` js title="index.js"
21
+ const ping_interval = 12000 ; // it's in milliseconds, which equals to 120 seconds
22
+ let interval;
23
+ // subscribe to `open` event
21
24
websocket .addEventListener (' open' , (event ) => {
22
25
console .log (' websocket connection established: ' , event );
23
26
const payload = JSON .stringify ({
24
27
residence_list: 1 ,
25
28
});
26
29
websocket .send (payload);
30
+
31
+ // to Keep the connection alive
32
+ interval = setInterval (() => {
33
+ const sendMessage = JSON .stringify ({ ping: 1 });
34
+ websocket .send (sendMessage);
35
+ }, ping_interval);
27
36
});
28
37
```
29
38
30
39
Now update the ` message ` event listener to render the data:
31
40
32
- ``` js
41
+ ``` js title="index.js"
42
+ // subscribe to `message` event
33
43
websocket .addEventListener (' message' , (event ) => {
34
44
const receivedMessage = JSON .parse (event .data );
35
- console .log (' get countries response' , receivedMessage);
45
+ switch (receivedMessage .msg_type ) {
46
+ case ' residence_list' :
47
+ console .log (' list of countries' , receivedMessage .residence_list );
48
+ break ;
49
+ case ' ping' :
50
+ console .log (' ping/pong response: ' , receivedMessage .ping );
51
+ break ;
52
+ default :
53
+ console .log (' received message: ' , receivedMessage);
54
+ break ;
55
+ }
36
56
});
37
57
```
38
58
@@ -120,3 +140,54 @@ It's better if you get the list of countries before populating your form.
120
140
::: danger
121
141
We need detailed content about ` IDV ` and ` ONFIDO ` identity services, their differences and possibilities
122
142
:::
143
+
144
+ your final code should be:
145
+
146
+ ``` js title="index.js"
147
+ const app_id = 1089 ; // Replace with your app_id or leave as 1089 for testing.
148
+ const websocket = new WebSocket (` wss://ws.binaryws.com/websockets/v3?app_id=${ app_id} ` );
149
+ const ping_interval = 12000 ; // it's in milliseconds, which equals to 120 seconds
150
+ let interval;
151
+
152
+ // subscribe to `open` event
153
+ websocket .addEventListener (' open' , (event ) => {
154
+ console .log (' websocket connection established: ' , event );
155
+ const payload = JSON .stringify ({
156
+ residence_list: 1 ,
157
+ });
158
+ websocket .send (payload);
159
+
160
+ // to Keep the connection alive
161
+ interval = setInterval (() => {
162
+ const sendMessage = JSON .stringify ({ ping: 1 });
163
+ websocket .send (sendMessage);
164
+ }, ping_interval);
165
+ });
166
+
167
+ // subscribe to `message` event
168
+ websocket .addEventListener (' message' , (event ) => {
169
+ const receivedMessage = JSON .parse (event .data );
170
+ switch (receivedMessage .msg_type ) {
171
+ case ' residence_list' :
172
+ console .log (' list of countries' , receivedMessage .residence_list );
173
+ break ;
174
+ case ' ping' :
175
+ console .log (' ping/pong response: ' , receivedMessage .ping );
176
+ break ;
177
+ default :
178
+ console .log (' received message: ' , receivedMessage);
179
+ break ;
180
+ }
181
+ });
182
+
183
+ // subscribe to `close` event
184
+ websocket .addEventListener (' close' , (event ) => {
185
+ console .log (' websocket connectioned closed: ' , event );
186
+ clearInterval (interval);
187
+ });
188
+
189
+ // subscribe to `error` event
190
+ websocket .addEventListener (' error' , (event ) => {
191
+ console .log (' an error happend in our websocket connection' , event );
192
+ });
193
+ ```
0 commit comments