Fix server dying when an error occurs

Resolves #34.
This commit is contained in:
Justin Spahr-Summers
2024-11-12 14:01:39 +00:00
parent ab9c130610
commit bf2ddc9b7b

View File

@@ -51,6 +51,7 @@ const createTransport = async (query: express.Request["query"]) => {
}; };
app.get("/sse", async (req, res) => { app.get("/sse", async (req, res) => {
try {
console.log("New SSE connection"); console.log("New SSE connection");
const backingServerTransport = await createTransport(req.query); const backingServerTransport = await createTransport(req.query);
@@ -73,22 +74,36 @@ app.get("/sse", async (req, res) => {
}, },
}); });
console.log("Set up MCP proxy"); console.log("Set up MCP proxy");
} catch (error) {
console.error("Error in /sse route:", error);
res.status(500).json(error);
}
}); });
app.post("/message", async (req, res) => { app.post("/message", async (req, res) => {
try {
const sessionId = req.query.sessionId; const sessionId = req.query.sessionId;
console.log(`Received message for sessionId ${sessionId}`); console.log(`Received message for sessionId ${sessionId}`);
const transport = webAppTransports.find((t) => t.sessionId === sessionId); const transport = webAppTransports.find((t) => t.sessionId === sessionId);
if (!transport) { if (!transport) {
res.status(404).send("Session not found"); res.status(404).end("Session not found");
return; return;
} }
await transport.handlePostMessage(req, res); await transport.handlePostMessage(req, res);
} catch (error) {
console.error("Error in /message route:", error);
res.status(500).json(error);
}
}); });
app.get("/default-environment", (req, res) => { app.get("/default-environment", (req, res) => {
try {
res.json(getDefaultEnvironment()); res.json(getDefaultEnvironment());
} catch (error) {
console.error("Error in /default-environment route:", error);
res.status(500).json(error);
}
}); });
const PORT = process.env.PORT || 3000; const PORT = process.env.PORT || 3000;