summaryrefslogtreecommitdiff
path: root/extension/src/util
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-06-30 17:25:35 -0700
committerNate Sesti <sestinj@gmail.com>2023-06-30 17:25:35 -0700
commit953d7dc8ddbea6b534977d68f38415a6b149d9d6 (patch)
tree3204415bb4de0c0b00b875a4812198c3f57ae0c5 /extension/src/util
parent9913b4fd46275f9185bf6a6896931bc38bd7d3d0 (diff)
downloadsncontinue-953d7dc8ddbea6b534977d68f38415a6b149d9d6.tar.gz
sncontinue-953d7dc8ddbea6b534977d68f38415a6b149d9d6.tar.bz2
sncontinue-953d7dc8ddbea6b534977d68f38415a6b149d9d6.zip
the fix. and others.
Diffstat (limited to 'extension/src/util')
-rw-r--r--extension/src/util/messenger.ts56
1 files changed, 47 insertions, 9 deletions
diff --git a/extension/src/util/messenger.ts b/extension/src/util/messenger.ts
index e4133230..b1df161b 100644
--- a/extension/src/util/messenger.ts
+++ b/extension/src/util/messenger.ts
@@ -1,5 +1,6 @@
console.log("Websocket import");
const WebSocket = require("ws");
+import fetch from "node-fetch";
export abstract class Messenger {
abstract send(messageType: string, data: object): void;
@@ -50,18 +51,49 @@ export class WebsocketMessenger extends Messenger {
return newWebsocket;
}
+ async checkServerRunning(serverUrl: string): Promise<boolean> {
+ // Check if already running by calling /health
+ try {
+ const response = await fetch(serverUrl + "/health");
+ if (response.status === 200) {
+ console.log("Continue python server already running");
+ return true;
+ } else {
+ return false;
+ }
+ } catch (e) {
+ return false;
+ }
+ }
+
constructor(serverUrl: string) {
super();
this.serverUrl = serverUrl;
this.websocket = this._newWebsocket();
- const interval = setInterval(() => {
- if (this.websocket.readyState === this.websocket.OPEN) {
- clearInterval(interval);
- } else if (this.websocket.readyState !== this.websocket.CONNECTING) {
- this.websocket = this._newWebsocket();
- }
- }, 1000);
+ // Wait until the server is running
+ // const interval = setInterval(async () => {
+ // if (
+ // await this.checkServerRunning(
+ // serverUrl.replace("/ide/ws", "").replace("ws://", "http://")
+ // )
+ // ) {
+ // this.websocket = this._newWebsocket();
+ // clearInterval(interval);
+ // } else {
+ // console.log(
+ // "Waiting for python server to start-----------------------"
+ // );
+ // }
+ // }, 1000);
+
+ // const interval = setInterval(() => {
+ // if (this.websocket.readyState === this.websocket.OPEN) {
+ // clearInterval(interval);
+ // } else if (this.websocket.readyState !== this.websocket.CONNECTING) {
+ // this.websocket = this._newWebsocket();
+ // }
+ // }, 1000);
}
send(messageType: string, data: object) {
@@ -99,10 +131,16 @@ export class WebsocketMessenger extends Messenger {
});
}
- onMessage(callback: (messageType: string, data: any) => void): void {
+ onMessage(
+ callback: (
+ messageType: string,
+ data: any,
+ messenger: WebsocketMessenger
+ ) => void
+ ): void {
this.websocket.addEventListener("message", (event) => {
const msg = JSON.parse(event.data);
- callback(msg.messageType, msg.data);
+ callback(msg.messageType, msg.data, this);
});
}