feat(builder): Add jwt support on websockets (#7734)

add jwt support on websockets
This commit is contained in:
Aarushi
2024-08-07 14:47:35 +01:00
committed by GitHub
parent 1bad26657c
commit f8d07a27af

View File

@@ -173,31 +173,41 @@ export default class AutoGPTServerAPI {
return response_data;
}
connectWebSocket(): Promise<void> {
return new Promise((resolve, reject) => {
this.socket = new WebSocket(this.wsUrl);
async connectWebSocket(): Promise<void> {
return new Promise(async (resolve, reject) => {
try {
const token =
(await this.supabaseClient?.auth.getSession())?.data.session
?.access_token || "";
this.socket.onopen = () => {
console.log("WebSocket connection established");
resolve();
};
const wsUrlWithToken = `${this.wsUrl}?token=${token}`;
this.socket = new WebSocket(wsUrlWithToken);
this.socket.onclose = (event) => {
console.log("WebSocket connection closed", event);
this.socket = null;
};
this.socket.onopen = () => {
console.log("WebSocket connection established");
resolve();
};
this.socket.onerror = (error) => {
console.error("WebSocket error:", error);
this.socket.onclose = (event) => {
console.log("WebSocket connection closed", event);
this.socket = null;
};
this.socket.onerror = (error) => {
console.error("WebSocket error:", error);
reject(error);
};
this.socket.onmessage = (event) => {
const message = JSON.parse(event.data);
if (this.messageHandlers[message.method]) {
this.messageHandlers[message.method](message.data);
}
};
} catch (error) {
console.error("Error connecting to WebSocket:", error);
reject(error);
};
this.socket.onmessage = (event) => {
const message = JSON.parse(event.data);
if (this.messageHandlers[message.method]) {
this.messageHandlers[message.method](message.data);
}
};
}
});
}