diff --git a/backend/app.py b/backend/app.py index 13d7c13..e3f86c1 100644 --- a/backend/app.py +++ b/backend/app.py @@ -21,7 +21,15 @@ logger = logging.getLogger(__name__) app = Flask(__name__) CORS(app, resources={r"/*": {"origins": "*"}}) -socketio = SocketIO(app, cors_allowed_origins="*", async_mode='threading') +socketio = SocketIO( + app, + cors_allowed_origins="*", + async_mode='threading', + ping_timeout=60, + ping_interval=25, + logger=True, + engineio_logger=False +) # Simple in-memory session storage (in production, use proper session management) sessions = {} diff --git a/frontend/lib/hooks/useInteractiveTerminal.ts b/frontend/lib/hooks/useInteractiveTerminal.ts index 2522680..1107796 100644 --- a/frontend/lib/hooks/useInteractiveTerminal.ts +++ b/frontend/lib/hooks/useInteractiveTerminal.ts @@ -86,6 +86,9 @@ export function useInteractiveTerminal({ const wsUrl = API_BASE_URL.replace(/^http/, 'ws'); socket = io(`${wsUrl}/terminal`, { transports: ['websocket', 'polling'], + reconnectionDelayMax: 10000, + timeout: 60000, + forceNew: true, }); socketRef.current = socket;