Skip to content

Commit 83d735c

Browse files
committed
Fix interupted socket message
1 parent a28a8ed commit 83d735c

File tree

2 files changed

+64
-66
lines changed

2 files changed

+64
-66
lines changed

src/avtransport.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ export class AVTransport {
6565
if (this.statuscb) this.statuscb({ status: 'connecting' })
6666
const hinfo = await this.hostinfocb()
6767
if (!hinfo) {
68-
await new Promise((resolve) => {
69-
setTimeout(resolve, 5000)
70-
})
68+
// hostinfocb has its own 5 seconds timeout on the socket.io connection
7169
continue
7270
}
7371
const url = hinfo.url // 'https://' + this.hostname + ':' + this.port + '/avfails'

src/socketworker.js

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -842,69 +842,69 @@ class SocketWorker {
842842

843843
handleAV(event) {
844844
if (event.data.command && this.socket) {
845-
this.socket.emit(event.data.command, event.data.data, (data) => {
846-
switch (event.data.command) {
847-
case 'gettransportinfo':
848-
if (data.error) {
849-
this.av.postMessage({
850-
task: 'transportinfo',
851-
error: data.error
852-
})
853-
this.servererrorhandler(
854-
-1,
855-
'AVS: ' + data.error,
856-
'AVS Transport error'
857-
)
858-
} else {
859-
this.av.postMessage({
860-
task: 'transportinfo',
861-
data: {
862-
url: data.url,
863-
wsurl: data.wsurl,
864-
spki: data.spki,
865-
token: data.token
866-
}
867-
})
868-
}
869-
break
870-
case 'getrouting':
871-
console.log('getrouting', data)
872-
if (data.error) {
873-
this.av.postMessage({
874-
task: 'tickets',
875-
error: data.error,
876-
webworkid: event.data.webworkid,
877-
queryid: event.data.queryid
878-
})
879-
this.servererrorhandler(
880-
-1,
881-
'AVS: ' + data.error,
882-
'AVS ticket error'
883-
)
884-
} else if (data.notfound) {
885-
console.log('client not found in network', data.notfound)
886-
this.av.postMessage({
887-
task: 'tickets',
888-
error: 'Client not found in network',
889-
webworkid: event.data.webworkid,
890-
queryid: event.data.queryid
891-
})
892-
} else {
893-
this.av.postMessage({
894-
task: 'tickets',
895-
data: {
896-
tickets: data.tickets
897-
},
898-
webworkid: event.data.webworkid,
899-
queryid: event.data.queryid
900-
})
901-
}
902-
break
903-
904-
default:
905-
// do nothing
906-
}
907-
})
845+
this.socket
846+
.timeout(5000)
847+
.emit(event.data.command, event.data.data, (terror, data) => {
848+
const error =
849+
data?.error || (terror && terror.toString()) || undefined
850+
switch (event.data.command) {
851+
case 'gettransportinfo':
852+
if (error) {
853+
this.av.postMessage({
854+
task: 'transportinfo',
855+
error
856+
})
857+
this.servererrorhandler(
858+
-1,
859+
'AVS: ' + error,
860+
'AVS Transport error'
861+
)
862+
} else {
863+
this.av.postMessage({
864+
task: 'transportinfo',
865+
data: {
866+
url: data.url,
867+
wsurl: data.wsurl,
868+
spki: data.spki,
869+
token: data.token
870+
}
871+
})
872+
}
873+
break
874+
case 'getrouting':
875+
console.log('getrouting', data)
876+
if (error) {
877+
this.av.postMessage({
878+
task: 'tickets',
879+
error,
880+
webworkid: event.data.webworkid,
881+
queryid: event.data.queryid
882+
})
883+
this.servererrorhandler(-1, 'AVS: ' + error, 'AVS ticket error')
884+
} else if (data.notfound) {
885+
console.log('client not found in network', data.notfound)
886+
this.av.postMessage({
887+
task: 'tickets',
888+
error: 'Client not found in network',
889+
webworkid: event.data.webworkid,
890+
queryid: event.data.queryid
891+
})
892+
} else {
893+
this.av.postMessage({
894+
task: 'tickets',
895+
data: {
896+
tickets: data.tickets
897+
},
898+
webworkid: event.data.webworkid,
899+
queryid: event.data.queryid
900+
})
901+
}
902+
break
903+
904+
default:
905+
// do nothing
906+
}
907+
})
908908
}
909909
}
910910

0 commit comments

Comments
 (0)