sean.zhou
2022-07-22 4dccbb68399da2d46943b8d613585afb49aa5455
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
import ReconnectingWebSocket from 'reconnecting-websocket'
import { ELocalStorageKey } from '../types/enums'
import { CURRENT_CONFIG as config } from '/@/api/http/config'
 
let socket: ReconnectingWebSocket
 
export default {
  init (getMsgFunc: any) {
    const token: string = localStorage.getItem(ELocalStorageKey.Token)!
    const wspath = config.websocketURL + '?x-auth-token=' + encodeURI(token)
    socket = new ReconnectingWebSocket(wspath, '', { maxRetries: 5 })
    socket.onopen = this.onOpen
    socket.onerror = this.onError
    socket.onmessage = getMsgFunc
    socket.onclose = this.onClose
    return socket
  },
  onOpen () {
    console.log('ws opened')
  },
  onError (err: any) {
    console.error(err)
  },
  onClose () {
    console.log('ws closed')
  },
  sendMsg (data: any) {
    socket.send(data)
  },
  close () {
    socket.close()
  }
}