fix(dev): proxy the messages WebSocket through Vite, which stops a reset killing the dev server
The Vite dev proxy had no `ws: true` on /api, so the in-app messages socket (/api/messages/ws) was an upgrade nobody handled: it never connected on :5173, and the first reset on it (a closed tab, a dropped connection) threw an unhandled ECONNRESET that took the whole dev server down. Reproduced with a raw upgrade + RST (dev server dead); with `ws: true` the backend answers the upgrade, the dev server survives the reset and a closed tab, and the signed-in socket is accepted through the proxy.
This commit is contained in:
@@ -11,7 +11,10 @@ const target = "http://127.0.0.1:8080";
|
||||
// server returns to :5173 instead of the fixed :8080 callback. (Both are registered in the console.)
|
||||
const proxyOpts = { target, changeOrigin: false };
|
||||
const proxy = {
|
||||
"/api": proxyOpts,
|
||||
// ws: the in-app messages socket (/api/messages/ws) is a WebSocket. Without it Vite hands that upgrade
|
||||
// to nobody, so the socket never connects on :5173 — and the first reset on it (a closed tab, a dropped
|
||||
// connection) throws an unhandled ECONNRESET that takes the whole dev server down.
|
||||
"/api": { ...proxyOpts, ws: true },
|
||||
"/auth": proxyOpts,
|
||||
"/healthz": proxyOpts,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user