fix: case too many connection on websocket

Signed-off-by: pakintada@gmail.com <Pakin>
This commit is contained in:
pakintada@gmail.com 2026-02-26 12:49:08 +07:00
parent a10dbbf26c
commit c876847eff
3 changed files with 37 additions and 6 deletions

View file

@ -4,13 +4,15 @@ import { get, writable } from 'svelte/store';
import { handleIncomingMessages } from '../handlers/messageHandler';
import { queue as msgQueue } from '../handlers/ws_messageSender';
export const socketStore = writable<WebSocket | null>(null, (set) => {
export const socketStore = writable<WebSocket | null>(null);
export function connectToWebsocket() {
if (browser) {
console.log('connecting to ', env.PUBLIC_WSS);
const socket = new WebSocket(`${env.PUBLIC_WSS}`);
socket.addEventListener('open', () => {
set(socket);
socketStore.set(socket);
// recover messages on connect, flushing
while (get(msgQueue).length) {
@ -29,12 +31,12 @@ export const socketStore = writable<WebSocket | null>(null, (set) => {
});
socket.addEventListener('close', () => {
set(null);
socketStore.set(null);
});
socket.addEventListener('error', (e) => {
console.log('WebSocket error: ', e);
set(null);
socketStore.set(null);
});
return () => {
@ -43,4 +45,4 @@ export const socketStore = writable<WebSocket | null>(null, (set) => {
}
};
}
});
}