diff --git a/packages/node_modules/@node-red/runtime/lib/multiplayer/index.js b/packages/node_modules/@node-red/runtime/lib/multiplayer/index.js index adfa63c28..08cb0d5a1 100644 --- a/packages/node_modules/@node-red/runtime/lib/multiplayer/index.js +++ b/packages/node_modules/@node-red/runtime/lib/multiplayer/index.js @@ -23,14 +23,16 @@ module.exports = { if (existingSessionId) { connections.delete(opts.session) const session = sessions.get(existingSessionId) - session.active = false - session.idleTimeout = setTimeout(() => { - sessions.delete(existingSessionId) - }, 30000) - runtime.events.emit('comms', { - topic: "multiplayer/connection-removed", - data: { session: existingSessionId } - }) + if (session) { + session.active = false + session.idleTimeout = setTimeout(() => { + sessions.delete(existingSessionId) + }, 30000) + runtime.events.emit('comms', { + topic: "multiplayer/connection-removed", + data: { session: existingSessionId } + }) + } } }) runtime.events.on('comms:message:multiplayer/connect', (opts) => { @@ -91,29 +93,31 @@ module.exports = { const sessionId = connections.get(opts.session) const session = sessions.get(sessionId) - if (opts.user) { - if (session.user.anonymous !== opts.user.anonymous) { - session.user = opts.user - runtime.events.emit('comms', { - topic: 'multiplayer/connection-added', - excludeSession: opts.session, - data: session - }) + if (session) { + if (opts.user) { + if (session.user.anonymous !== opts.user.anonymous) { + session.user = opts.user + runtime.events.emit('comms', { + topic: 'multiplayer/connection-added', + excludeSession: opts.session, + data: session + }) + } } - } - session.location = opts.data + session.location = opts.data - const payload = { - session: sessionId, - workspace: opts.data.workspace, - node: opts.data.node + const payload = { + session: sessionId, + workspace: opts.data.workspace, + node: opts.data.node + } + runtime.events.emit('comms', { + topic: 'multiplayer/location', + data: payload, + excludeSession: opts.session + }) } - runtime.events.emit('comms', { - topic: 'multiplayer/location', - data: payload, - excludeSession: opts.session - }) }) } } \ No newline at end of file