summaryrefslogtreecommitdiff
path: root/public/js/lib.js
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 };