refactor: Centralize Socket.IO client options in config for improved maintainability and consistency across prerender scripts

This commit is contained in:
sebseb7
2026-03-26 21:57:50 +01:00
parent 47ed2ec231
commit 5b7f0f788c
4 changed files with 15 additions and 19 deletions

View File

@@ -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(() => {

View File

@@ -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"...');

View File

@@ -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,
};

View File

@@ -42,6 +42,7 @@ const fetchCategoryProducts = (socket, categoryId) => {
"getCategoryProducts",
{
full: true,
nocount: true,
categoryId:
categoryId === "neu" || categoryId === "bald"
? categoryId