blob: 8331f5a1f275fa1ae75e4ba23f02bb4951b283f3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
class AppSocket extends WebSocket {
send(msg){
if (typeof(msg) !== 'string') {
try {
super.send(JSON.stringify(msg));
} catch (e) {
console.error('cant json stringify msg', msg, e);
}
} else {
super.send(msg);
}
}
}
class Client extends AppSocket {
constructor(serverURL) {
super(serverURL);
this.serverURL = serverURL;
this.addEventListener('open', this.onopen.bind(this));
this.addEventListener('close', this.onclose.bind(this));
this.addEventListener('error', this.onerror.bind(this));
this.addEventListener('message', this.handleMessage.bind(this));
}
onopen = (event)=>{
console.log('Connected to server');
// Send a test message to the server. todo this will be able to be inputted from user
const myState = {
type: 'clientState',
payload: {
id: '123',
name: 'test client',
timestamp: Date.now(),
}
};
this.send({data: 'yo'});
console.log('Sent message:');
}
onclose = ()=>{
console.log('disconnected');
}
onerror = (error)=>{
console.error('error', error)
}
handleMessage(event){
console.log('message', event.data);
}
}
export { AppSocket, Client };
|