Dockerfile, terminate worker on reconnect

This commit is contained in:
AlecM33
2023-01-19 19:10:59 -05:00
parent 36c48affc9
commit 3ab5f2ff53
3 changed files with 8 additions and 11 deletions

View File

@@ -1,20 +1,13 @@
# Use the official lightweight Node.js 12 image.
# https://hub.docker.com/_/node
FROM node:14-slim
# Create and change to the app directory.
WORKDIR /usr/src/app
# Copy application dependency manifests to the container image.
# A wildcard is used to ensure both package.json AND package-lock.json are copied.
# Copying this separately prevents re-running npm install on every code change.
COPY package*.json ./
# Install production dependencies.
RUN npm install --only=production
# Copy local code to the container image.
COPY . ./
# Run the web service on container startup.
CMD [ "npm", "start" ]
ENV NODE_ENV production
ENTRYPOINT ["node", "index.js", "--", "loglevel=debug" ]

View File

@@ -52,7 +52,7 @@ export class InProgress {
);
setTimeout(() => {
if (this.socket.hasListeners(globals.EVENT_IDS.GET_TIME_REMAINING)) {
document.getElementById('game-timer').innerText = 'could not retrieve';
document.getElementById('game-timer').innerText = 'Timer not found.';
document.getElementById('game-timer').classList.add('timer-error');
}
}, 15000);

View File

@@ -20,6 +20,10 @@ export const gameHandler = async (socket, XHRUtility, window, gameDOM) => {
stateBucket.environment = response.content;
socket.on('connect', function () {
if (stateBucket.timerWorker) {
stateBucket.timerWorker.terminate();
stateBucket.timerWorker = null;
}
SharedStateUtil.syncWithGame(
stateBucket,
socket,