summaryrefslogtreecommitdiff
path: root/extension/src
diff options
context:
space:
mode:
Diffstat (limited to 'extension/src')
-rw-r--r--extension/src/debugPanel.ts26
1 files changed, 24 insertions, 2 deletions
diff --git a/extension/src/debugPanel.ts b/extension/src/debugPanel.ts
index 3c4f8481..4785ba20 100644
--- a/extension/src/debugPanel.ts
+++ b/extension/src/debugPanel.ts
@@ -17,17 +17,20 @@ class WebsocketConnection {
private _onMessage: (message: string) => void;
private _onOpen: () => void;
private _onClose: () => void;
+ private _onError: (e: any) => void;
constructor(
url: string,
onMessage: (message: string) => void,
onOpen: () => void,
- onClose: () => void
+ onClose: () => void,
+ onError: (e: any) => void
) {
this._ws = new WebSocket(url);
this._onMessage = onMessage;
this._onOpen = onOpen;
this._onClose = onClose;
+ this._onError = onError;
this._ws.addEventListener("message", (event) => {
this._onMessage(event.data);
@@ -38,6 +41,9 @@ class WebsocketConnection {
this._ws.addEventListener("open", () => {
this._onOpen();
});
+ this._ws.addEventListener("error", (e: any) => {
+ this._onError(e);
+ });
}
public send(message: string) {
@@ -147,12 +153,20 @@ export function setupDebugPanel(
url,
});
};
+ const onError = (e: any) => {
+ panel.webview.postMessage({
+ type: "websocketForwardingError",
+ url,
+ error: e,
+ });
+ };
try {
const connection = new WebsocketConnection(
url,
onMessage,
onOpen,
- onClose
+ onClose,
+ onError
);
websocketConnections[url] = connection;
resolve(null);
@@ -198,6 +212,14 @@ export function setupDebugPanel(
if (typeof websocketConnections[url] === "undefined") {
await connectWebsocket(url);
}
+ console.log(
+ "Websocket connection requested by GUI already open at",
+ url
+ );
+ panel.webview.postMessage({
+ type: "websocketForwardingOpen",
+ url,
+ });
break;
}
case "websocketForwardingMessage": {