tamabahan
This commit is contained in:
@@ -9,14 +9,7 @@ import Auth from "./server/routes/auth_route";
|
||||
import CredentialRoute from "./server/routes/credential_route";
|
||||
import DarmasabaRoute from "./server/routes/darmasaba_route";
|
||||
import { convertOpenApiToMcp } from "./server/lib/mcp-converter";
|
||||
|
||||
function encode(str: string) {
|
||||
return new TextEncoder().encode(str);
|
||||
}
|
||||
|
||||
function sleep(ms: number) {
|
||||
return new Promise((r) => setTimeout(r, ms));
|
||||
}
|
||||
import McpRoute from "./server/routes/mcp_route";
|
||||
|
||||
const Docs = new Elysia()
|
||||
.use(Swagger({
|
||||
@@ -55,34 +48,7 @@ const app = new Elysia()
|
||||
tags: ["MCP"],
|
||||
}
|
||||
})
|
||||
.get("/mcp", () => {
|
||||
// Buat stream SSE
|
||||
const stream = new ReadableStream({
|
||||
async start(controller) {
|
||||
// Kirim event pertama
|
||||
controller.enqueue(encode("event: ready\ndata: " + JSON.stringify({ ok: true }) + "\n\n"));
|
||||
|
||||
// Kirim event tiap 5 detik
|
||||
while (true) {
|
||||
controller.enqueue(encode("event: status\ndata: " + JSON.stringify({ timestamp: Date.now() }) + "\n\n"));
|
||||
await sleep(5000);
|
||||
}
|
||||
},
|
||||
cancel() {
|
||||
console.log("SSE client disconnected");
|
||||
}
|
||||
});
|
||||
|
||||
// Kembalikan Response manual
|
||||
return new Response(stream, {
|
||||
headers: {
|
||||
"Content-Type": "text/event-stream",
|
||||
"Cache-Control": "no-cache",
|
||||
Connection: "keep-alive"
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
.use(McpRoute)
|
||||
.get("*", html)
|
||||
.listen(3000, () => {
|
||||
console.log("Server running at http://localhost:3000");
|
||||
|
||||
Reference in New Issue
Block a user