- 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.
36 lines
1.1 KiB
TypeScript
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}`);
|
|
});
|