Clean up after a closed EngineConnection (#304)

Because we gate a lot of things off this.foo?, leaving the closed
websocket/pc/etc in-place was causing a noisy log, and mucking with
reestablishing a broken connection.

While I was in here, I fixed a style nit from yarn.

Signed-off-by: Paul R. Tagliamonte <paul@kittycad.io>
This commit is contained in:
Paul Tagliamonte
2023-08-22 18:18:22 -04:00
committed by GitHub
parent 148e125dd7
commit dbe4e7faa6

View File

@ -314,6 +314,9 @@ export class EngineConnection extends EventTarget {
this.websocket?.close() this.websocket?.close()
this.pc?.close() this.pc?.close()
this.lossyDataChannel?.close() this.lossyDataChannel?.close()
this.websocket = undefined
this.pc = undefined
this.lossyDataChannel = undefined
this.dispatchEvent( this.dispatchEvent(
new CustomEvent(EngineConnectionEvents.Close, { new CustomEvent(EngineConnectionEvents.Close, {
@ -375,7 +378,7 @@ export class EngineCommandManager {
this.engineConnection.addEventListener( this.engineConnection.addEventListener(
EngineConnectionEvents.ConnectionStarted, EngineConnectionEvents.ConnectionStarted,
(event: Event) => { (event: Event) => {
let customEvent = <CustomEvent<EngineConnection>>event let customEvent = event as CustomEvent<EngineConnection>
let conn = customEvent.detail let conn = customEvent.detail
this.engineConnection?.pc?.addEventListener('datachannel', (event) => { this.engineConnection?.pc?.addEventListener('datachannel', (event) => {
@ -421,7 +424,7 @@ export class EngineCommandManager {
this.engineConnection.addEventListener( this.engineConnection.addEventListener(
EngineConnectionEvents.NewTrack, EngineConnectionEvents.NewTrack,
(event: Event) => { (event: Event) => {
let customEvent = <CustomEvent<NewTrackArgs>>event let customEvent = event as CustomEvent<NewTrackArgs>
let mediaStream = customEvent.detail.mediaStream let mediaStream = customEvent.detail.mediaStream
console.log('received track', mediaStream) console.log('received track', mediaStream)