Files
var-monorepo/apps/dispatch-server/index.ts
PxlLoewe 50f42e99d3 feat: Implement connected user API and integrate chat and report components
- Added API routes for fetching connected users, keywords, missions, and stations.
- Created a new QueryProvider component for managing query states and socket events.
- Introduced connection stores for dispatch and pilot, managing socket connections and states.
- Updated Prisma schema for connected aircraft model.
- Enhanced UI with toast notifications for status updates and chat interactions.
- Implemented query functions for fetching connected users and keywords with error handling.
2025-05-07 00:43:45 -07:00

36 lines
1.1 KiB
TypeScript

import "dotenv/config";
import express from "express";
import { createServer } from "http";
import { Server } from "socket.io";
import { createAdapter } from "@socket.io/redis-adapter";
import { jwtMiddleware } from "modules/socketJWTmiddleware";
import { pubClient, subClient } from "modules/redis";
import { handleConnectDispatch } from "socket-events/connect-dispatch";
import router from "routes/router";
import cors from "cors";
import { handleSendMessage } from "socket-events/send-message";
import { handleConnectPilot } from "socket-events/connect-pilot";
const app = express();
const server = createServer(app);
export const io = new Server(server, {
adapter: createAdapter(pubClient, subClient),
cors: {},
});
io.use(jwtMiddleware);
io.on("connection", (socket) => {
socket.on("connect-dispatch", handleConnectDispatch(socket, io));
socket.on("connect-pilot", handleConnectPilot(socket, io));
socket.on("send-message", handleSendMessage(socket, io));
});
app.use(cors());
app.use(express.json());
app.use(router);
server.listen(process.env.PORT, () => {
console.log(`Server running on port ${process.env.PORT}`);
});