forked from mirrors/homebox
feat: WebSocket based implementation of server sent events for cache busting (#527)
* rough implementation of WS based event system for server side notifications of mutation
* fix test construction
* fix deadlock on event bus
* disable linter error
* add item mutation events
* remove old event bus code
* refactor event system to use composables
* refresh items table when new item is added
* fix create form errors
* cleanup unnecessary calls
* fix importer erorrs + limit fn calls on import
Former-commit-id: 2cbcc8bb1d
This commit is contained in:
parent
26911e9530
commit
0cbe516ca3
31 changed files with 458 additions and 208 deletions
46
frontend/nuxt.proxyoverride.ts
Normal file
46
frontend/nuxt.proxyoverride.ts
Normal file
|
@ -0,0 +1,46 @@
|
|||
// https://gist.github.com/ucw/67f7291c64777fb24341e8eae72bcd24
|
||||
import { IncomingMessage } from "http";
|
||||
import internal from "stream";
|
||||
import { defineNuxtModule, logger } from "@nuxt/kit";
|
||||
// eslint-disable-next-line
|
||||
import { createProxyServer } from "http-proxy";
|
||||
|
||||
export default defineNuxtModule({
|
||||
defaults: {
|
||||
target: "ws://localhost:7745",
|
||||
path: "/api/v1/ws",
|
||||
},
|
||||
meta: {
|
||||
configKey: "websocketProxy",
|
||||
name: "Websocket proxy",
|
||||
},
|
||||
setup(resolvedOptions, nuxt) {
|
||||
if (!nuxt.options.dev || !resolvedOptions.target) {
|
||||
return;
|
||||
}
|
||||
|
||||
nuxt.hook("listen", server => {
|
||||
const proxy = createProxyServer({
|
||||
ws: true,
|
||||
secure: false,
|
||||
changeOrigin: true,
|
||||
target: resolvedOptions.target,
|
||||
});
|
||||
|
||||
const proxyFn = (req: IncomingMessage, socket: internal.Duplex, head: Buffer) => {
|
||||
if (req.url && req.url.startsWith(resolvedOptions.path)) {
|
||||
proxy.ws(req, socket, head);
|
||||
}
|
||||
};
|
||||
|
||||
server.on("upgrade", proxyFn);
|
||||
|
||||
nuxt.hook("close", () => {
|
||||
server.off("upgrade", proxyFn);
|
||||
proxy.close();
|
||||
});
|
||||
|
||||
logger.info(`Websocket dev proxy started on ${resolvedOptions.path}`);
|
||||
});
|
||||
},
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue