diff --git a/prerender-single-product.cjs b/prerender-single-product.cjs index e5f32d5..c362b7f 100644 --- a/prerender-single-product.cjs +++ b/prerender-single-product.cjs @@ -66,12 +66,7 @@ const renderSingleProduct = async (productSeoName) => { const socketUrl = "http://127.0.0.1:9303"; console.log(`🔌 Connecting to socket at ${socketUrl}...`); - const socket = io(socketUrl, { - path: "/socket.io/", - transports: ["websocket"], - reconnection: false, - timeout: 10000, - }); + const socket = io(socketUrl, config.socketIoClientOptions); return new Promise((resolve, reject) => { const timeout = setTimeout(() => { diff --git a/prerender.cjs b/prerender.cjs index c7f32fa..aacc549 100644 --- a/prerender.cjs +++ b/prerender.cjs @@ -166,12 +166,7 @@ const NotFound404 = require("./src/pages/NotFound404.js").default; // Worker function for parallel product rendering const renderProductWorker = async (productSeoNames, workerId, progressCallback, categoryMap = {}) => { const socketUrl = "http://127.0.0.1:9303"; - const workerSocket = io(socketUrl, { - path: "/socket.io/", - transports: ["websocket"], - reconnection: false, - timeout: 10000, - }); + const workerSocket = io(socketUrl, config.socketIoClientOptions); return new Promise((resolve) => { let processedCount = 0; @@ -863,12 +858,7 @@ const fetchCategoryDataAndRender = () => { process.exit(1); }, 15000); - const socket = io(socketUrl, { - path: "/socket.io/", - transports: ["websocket"], - reconnection: false, - timeout: 10000, - }); + const socket = io(socketUrl, config.socketIoClientOptions); socket.on("connect", () => { console.log('Socket connected. Emitting "categoryList"...'); diff --git a/prerender/config.cjs b/prerender/config.cjs index 314c9e1..d0943a5 100644 --- a/prerender/config.cjs +++ b/prerender/config.cjs @@ -69,11 +69,21 @@ const globalCssCollection = new Set(); // Get webpack entrypoints const webpackEntrypoints = getWebpackEntrypoints(); +/** Socket.IO client options for prerender scripts: skip backend connection counters (balanced on disconnect). */ +const socketIoClientOptions = { + path: "/socket.io/", + transports: ["websocket"], + reconnection: false, + timeout: 10000, + auth: { prerender: true }, +}; + module.exports = { isProduction, outputDir, getWebpackEntrypoints, globalCss, globalCssCollection, - webpackEntrypoints + webpackEntrypoints, + socketIoClientOptions, }; \ No newline at end of file diff --git a/prerender/data-fetching.cjs b/prerender/data-fetching.cjs index 09e2391..941ceab 100644 --- a/prerender/data-fetching.cjs +++ b/prerender/data-fetching.cjs @@ -42,6 +42,7 @@ const fetchCategoryProducts = (socket, categoryId) => { "getCategoryProducts", { full: true, + nocount: true, categoryId: categoryId === "neu" || categoryId === "bald" ? categoryId