remove old connection events.

This commit is contained in:
Miroslav Šedivý 2021-06-18 23:15:29 +02:00
parent 6ab5978ad0
commit 2c02a0f2f9
3 changed files with 39 additions and 39 deletions

View file

@ -1,7 +1,9 @@
import Vue from 'vue'
import EventEmitter from 'eventemitter3'
import { NekoWebSocket } from './websocket'
import { NekoWebRTC, WebRTCStats } from './webrtc'
import { Connection } from '../types/state'
export interface NekoConnectionEvents {
connecting: () => void
@ -12,15 +14,44 @@ export interface NekoConnectionEvents {
export class NekoConnection extends EventEmitter<NekoConnectionEvents> {
private _url: string
private _token: string
private _state: Connection
public websocket = new NekoWebSocket()
public webrtc = new NekoWebRTC()
constructor() {
constructor(state: Connection) {
super()
this._url = ''
this._token = ''
this._state = state
// initial state
Vue.set(this._state, 'type', 'webrtc')
Vue.set(this._state, 'websocket', this.websocket.supported ? 'disconnected' : 'unavailable')
Vue.set(this._state.webrtc, 'status', this.webrtc.supported ? 'disconnected' : 'unavailable')
// websocket
this.websocket.on('connecting', () => {
Vue.set(this._state, 'websocket', 'connecting')
})
this.websocket.on('connected', () => {
Vue.set(this._state, 'websocket', 'connected')
})
this.websocket.on('disconnected', () => {
Vue.set(this._state, 'websocket', 'disconnected')
})
// webrtc
this.webrtc.on('connecting', () => {
Vue.set(this._state.webrtc, 'status', 'connecting')
})
this.webrtc.on('connected', () => {
Vue.set(this._state.webrtc, 'status', 'connected')
})
this.webrtc.on('disconnected', () => {
Vue.set(this._state.webrtc, 'status', 'disconnected')
})
}
public setUrl(url: string) {