fix: resolve WebSocket path conflicts by manually routing HTTP upgrade events
Build Institutional Trader / build-and-deploy (push) Successful in 2m1s
Details
Build Institutional Trader / build-and-deploy (push) Successful in 2m1s
Details
This commit is contained in:
parent
2ba6425eed
commit
c981faf3a6
|
|
@ -293,8 +293,8 @@ router.get('/recent', async (req, res) => {
|
|||
});
|
||||
|
||||
// WebSocket for real-time alerts
|
||||
export function setupAlertsWebSocket(server) {
|
||||
const wss = new WebSocketServer({ server, path: '/ws/alerts' });
|
||||
export function setupAlertsWebSocket() {
|
||||
const wss = new WebSocketServer({ noServer: true });
|
||||
|
||||
wss.on('connection', (ws) => {
|
||||
console.log('Client connected to alerts feed');
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { WebSocketServer } from 'ws';
|
|||
import { rawQuery } from '../db.js';
|
||||
import { optionsFlowQuery } from '../queries/optionsFlowQuery.js';
|
||||
|
||||
export function setupWebSocket(server) {
|
||||
const wss = new WebSocketServer({ server, path: '/ws/flow' });
|
||||
export function setupWebSocket() {
|
||||
const wss = new WebSocketServer({ noServer: true });
|
||||
|
||||
wss.on('connection', (ws) => {
|
||||
console.log('Client connected to WebSocket');
|
||||
|
|
|
|||
|
|
@ -120,9 +120,25 @@ const server = app.listen(PORT, async () => {
|
|||
}
|
||||
});
|
||||
|
||||
// Setup WebSocket
|
||||
setupWebSocket(server);
|
||||
setupAlertsWebSocket(server);
|
||||
// Setup WebSockets manually to handle multiple paths
|
||||
const flowWss = setupWebSocket();
|
||||
const alertsWss = setupAlertsWebSocket();
|
||||
|
||||
server.on('upgrade', (request, socket, head) => {
|
||||
const pathname = request.url.split('?')[0];
|
||||
|
||||
if (pathname === '/ws/flow') {
|
||||
flowWss.handleUpgrade(request, socket, head, (ws) => {
|
||||
flowWss.emit('connection', ws, request);
|
||||
});
|
||||
} else if (pathname === '/ws/alerts') {
|
||||
alertsWss.handleUpgrade(request, socket, head, (ws) => {
|
||||
alertsWss.emit('connection', ws, request);
|
||||
});
|
||||
} else {
|
||||
socket.destroy();
|
||||
}
|
||||
});
|
||||
|
||||
// Graceful shutdown
|
||||
process.on('SIGTERM', () => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue