diff --git a/src/dev-server/dev-server-client/client-web-socket.ts b/src/dev-server/dev-server-client/client-web-socket.ts index baa55767880..c4a36542173 100644 --- a/src/dev-server/dev-server-client/client-web-socket.ts +++ b/src/dev-server/dev-server-client/client-web-socket.ts @@ -7,6 +7,7 @@ export const initClientWebSocket = (win: d.DevClientWindow, config: d.DevClientC let reconnectAttempts = 0; let requestBuildResultsTmrId: any; let hasGottenBuildResults = false; + let buildResultsRequests = 0; function onOpen(this: WebSocket) { if (reconnectAttempts > 0) { @@ -17,7 +18,8 @@ export const initClientWebSocket = (win: d.DevClientWindow, config: d.DevClientC if (!hasGottenBuildResults) { requestBuildResultsTmrId = setInterval(() => { - if (!hasGottenBuildResults && this.readyState === WebSocket.OPEN) { + buildResultsRequests++; + if (!hasGottenBuildResults && this.readyState === WebSocket.OPEN && buildResultsRequests < 500) { const msg: d.DevServerMessage = { requestBuildResults: true, }; @@ -70,6 +72,7 @@ export const initClientWebSocket = (win: d.DevClientWindow, config: d.DevClientC // so it's probably best if we do a full page refresh logReload(`Reconnected to dev server`); hasGottenBuildResults = true; + buildResultsRequests = 0; clearInterval(requestBuildResultsTmrId); win.location.reload(true); return; @@ -89,6 +92,7 @@ export const initClientWebSocket = (win: d.DevClientWindow, config: d.DevClientC // we just got build results from the server // let's update our app with the data received hasGottenBuildResults = true; + buildResultsRequests = 0; clearInterval(requestBuildResultsTmrId); emitBuildStatus(win, 'default'); diff --git a/src/dev-server/index.ts b/src/dev-server/index.ts index 973fa93c4e1..cc277ad8c2a 100644 --- a/src/dev-server/index.ts +++ b/src/dev-server/index.ts @@ -213,6 +213,7 @@ function emitMessageToClient(serverProcess: ChildProcess, devServerContext: DevS // a compiler build has finished // send the build results to the child server process devServerContext.isActivelyBuilding = false; + devServerContext.lastBuildResults = { ...data }; const msg: DevServerMessage = { buildResults: { ...data }, };