export async function onRequestPost(ctx) { const { env, request } = ctx; const data = await request.json(); const { room, type, payload } = data; await env.DB.prepare( `INSERT INTO signals (room, type, payload, created_at) VALUES (?, ?, ?, ?)` ).bind(room, type, JSON.stringify(payload), Date.now()).run(); return Response.json({ ok: true }); } export async function onRequestGet(ctx) { const { env, request } = ctx; const url = new URL(request.url); const room = url.searchParams.get("room"); const since = Number(url.searchParams.get("since") || 0); const { results } = await env.DB.prepare( `SELECT * FROM signals WHERE room = ? AND id > ? ORDER BY id ASC` ).bind(room, since).all(); // 清理 1 小时前的旧数据 await env.DB.prepare( `DELETE FROM signals WHERE created_at < ?` ).bind(Date.now() - 3600 * 1000).run(); return Response.json(results); }