avoid emitting when client not connected

the emit is happening asynchronously after the client list is computed,
so clients may have disconnected in the intervening time.
This commit is contained in:
Brian Gough 2020-02-04 11:39:37 +00:00
parent a7ec454ed3
commit 7380d523d5

View file

@ -96,6 +96,9 @@ module.exports = WebsocketLoadBalancer =
, (client, cb) -> , (client, cb) ->
Utils.getClientAttributes client, ['is_restricted_user'], (err, {is_restricted_user}) -> Utils.getClientAttributes client, ['is_restricted_user'], (err, {is_restricted_user}) ->
return cb(err) if err? return cb(err) if err?
if !client.connected
logger.warn {channel:channel, client: client.id}, "skipping emit, client not connected"
return cb()
if !seen[client.id] if !seen[client.id]
seen[client.id] = true seen[client.id] = true
if !(is_restricted_user && message.message not in RESTRICTED_USER_MESSAGE_TYPE_PASS_LIST) if !(is_restricted_user && message.message not in RESTRICTED_USER_MESSAGE_TYPE_PASS_LIST)