fix(terminal): init payload never sent due to ws.onopen being overwritten
All checks were successful
Beta Release / beta (push) Successful in 40s
All checks were successful
Beta Release / beta (push) Successful in 40s
connectWebSocket set ws.onopen to send the shell init payload, but initTerminal immediately overwrote it with a state-only handler. Switched to addEventListener so both handlers coexist.
This commit is contained in:
@@ -94,15 +94,15 @@ function connectWebSocket(term, fitAddon, initPayload) {
|
|||||||
const proto = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
|
const proto = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
|
||||||
const ws = new WebSocket(`${proto}//${window.location.host}/api/ws/terminal`)
|
const ws = new WebSocket(`${proto}//${window.location.host}/api/ws/terminal`)
|
||||||
|
|
||||||
ws.onopen = () => {
|
ws.addEventListener('open', () => {
|
||||||
ws.send(JSON.stringify(initPayload))
|
ws.send(JSON.stringify(initPayload))
|
||||||
const dims = fitAddon.proposeDimensions()
|
const dims = fitAddon.proposeDimensions()
|
||||||
if (dims) {
|
if (dims) {
|
||||||
ws.send(JSON.stringify({ type: 'resize', rows: dims.rows, cols: dims.cols }))
|
ws.send(JSON.stringify({ type: 'resize', rows: dims.rows, cols: dims.cols }))
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
ws.onmessage = (event) => {
|
ws.addEventListener('message', (event) => {
|
||||||
try {
|
try {
|
||||||
const msg = JSON.parse(event.data)
|
const msg = JSON.parse(event.data)
|
||||||
if (msg.type === 'output') {
|
if (msg.type === 'output') {
|
||||||
@@ -113,15 +113,15 @@ function connectWebSocket(term, fitAddon, initPayload) {
|
|||||||
} catch {
|
} catch {
|
||||||
term.write(event.data)
|
term.write(event.data)
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
ws.onclose = () => {
|
ws.addEventListener('close', () => {
|
||||||
term.write('\r\n\x1b[33m— Connection closed —\x1b[0m\r\n')
|
term.write('\r\n\x1b[33m— Connection closed —\x1b[0m\r\n')
|
||||||
}
|
})
|
||||||
|
|
||||||
ws.onerror = () => {
|
ws.addEventListener('error', () => {
|
||||||
term.write('\r\n\x1b[31m— Connection error —\x1b[0m\r\n')
|
term.write('\r\n\x1b[31m— Connection error —\x1b[0m\r\n')
|
||||||
}
|
})
|
||||||
|
|
||||||
term.onData((data) => {
|
term.onData((data) => {
|
||||||
if (ws.readyState === WebSocket.OPEN) {
|
if (ws.readyState === WebSocket.OPEN) {
|
||||||
|
|||||||
Reference in New Issue
Block a user