socket reruns
This commit is contained in:
parent
a876f3c35b
commit
11c6c19628
29 changed files with 3921 additions and 233 deletions
47
apps/stock/web-api/src/routes/websocket.routes.ts
Normal file
47
apps/stock/web-api/src/routes/websocket.routes.ts
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
import type { IServiceContainer } from '@stock-bot/handlers';
|
||||
import { createWebSocketHandler } from '../websocket/run-updates';
|
||||
import { getLogger } from '@stock-bot/logger';
|
||||
|
||||
const logger = getLogger('websocket-routes');
|
||||
|
||||
export function createWebSocketRoute(container: IServiceContainer) {
|
||||
const wsHandler = createWebSocketHandler(container);
|
||||
|
||||
// Make the handler available globally for other services
|
||||
(global as any).wsHandler = wsHandler;
|
||||
|
||||
return (request: Request, server: any) => {
|
||||
const url = new URL(request.url);
|
||||
const runId = url.searchParams.get('runId');
|
||||
|
||||
if (!runId) {
|
||||
return new Response('Missing runId parameter', { status: 400 });
|
||||
}
|
||||
|
||||
logger.info(`WebSocket upgrade request for run: ${runId}`);
|
||||
|
||||
// Upgrade the connection to WebSocket
|
||||
const success = server.upgrade(request, {
|
||||
data: { runId }
|
||||
});
|
||||
|
||||
if (success) {
|
||||
logger.info(`WebSocket upgrade successful for run: ${runId}`);
|
||||
// Return undefined to indicate successful upgrade
|
||||
return;
|
||||
} else {
|
||||
logger.error(`WebSocket upgrade failed for run: ${runId}`);
|
||||
return new Response('WebSocket upgrade failed', { status: 500 });
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// WebSocket connection handler for Bun
|
||||
export function handleWebSocketConnection(ws: any) {
|
||||
const { runId } = ws.data;
|
||||
const wsHandler = (global as any).wsHandler;
|
||||
|
||||
if (wsHandler && runId) {
|
||||
wsHandler.handleConnection(ws, runId);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue