big chungus; big changes
This commit is contained in:
@@ -1,42 +1,62 @@
|
||||
import { Server as Engine } from "@socket.io/bun-engine";
|
||||
import { Server } from "socket.io";
|
||||
import { Hono } from "hono";
|
||||
import { cors } from 'hono/cors';
|
||||
import { PrismaClient } from "./generated/prisma";
|
||||
|
||||
const io = new Server();
|
||||
|
||||
const engine = new Engine();
|
||||
engine.opts.cors = {
|
||||
origin: "*"
|
||||
interface ServerToClientEvents {
|
||||
}
|
||||
|
||||
io.bind(engine);
|
||||
interface ClientToServerEvents {
|
||||
createAlarm: (cmd:CreateAlarmCommand) => void;
|
||||
}
|
||||
|
||||
interface InterServerEvents {
|
||||
}
|
||||
|
||||
interface SocketData {
|
||||
token: string;
|
||||
}
|
||||
|
||||
interface CreateAlarmCommand {
|
||||
time:string
|
||||
}
|
||||
|
||||
interface ListCommand {
|
||||
groupId?:number
|
||||
}
|
||||
|
||||
interface MakeGroupCommand {
|
||||
name:string
|
||||
}
|
||||
|
||||
interface RemoveCommand {
|
||||
groupId:number
|
||||
alarmId:number
|
||||
}
|
||||
|
||||
interface SnoozeCommand {
|
||||
groupId:number
|
||||
}
|
||||
|
||||
interface ShutoffCommand {
|
||||
groupId:number
|
||||
}
|
||||
|
||||
const key = process.env.SECRET_KEY;
|
||||
if (!key) {
|
||||
throw new Error("Secret key not defined");
|
||||
}
|
||||
|
||||
const io = new Server<
|
||||
ServerToClientEvents,
|
||||
ClientToServerEvents,
|
||||
InterServerEvents,
|
||||
SocketData
|
||||
>(3300);
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
console.log("conn")
|
||||
});
|
||||
if (socket.data.token !== key) {
|
||||
return;
|
||||
}
|
||||
|
||||
const app = new Hono();
|
||||
app.use(cors({ origin: '*' }))
|
||||
|
||||
const { websocket } = engine.handler();
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
prisma.user.findMany().then((data) => console.log(data));
|
||||
|
||||
export default {
|
||||
port: 3000,
|
||||
idleTimeout: 30, // must be greater than the "pingInterval" option of the engine, which defaults to 25 seconds
|
||||
fetch(req: Request, server: unknown) {
|
||||
const url = new URL(req.url);
|
||||
|
||||
if (url.pathname === "/socket.io/") {
|
||||
return engine.handleRequest(req, server);
|
||||
} else {
|
||||
return app.fetch(req, server);
|
||||
}
|
||||
},
|
||||
|
||||
websocket
|
||||
}
|
||||
socket.on("createAlarm", () => {
|
||||
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user