Все оказалось куда проще, решение такого, при каждом подключении сохраняю uuid пользователя в массив, при отключении соответственно удаляю, так как слушатели это простой массив то список uuid будет работать так же как и список слушателей, то есть они по идее должны быть синхронизированы по индексам, соответственно вот сама реализация рассылки
public broadcast(type: string, receivers: string[], msg?: any) {
const events = this.emitter.eventNames()
if (!events.includes(type)) {
console.warn('Предупреждение: такое событие не добавлено!')
return
}
const list = receivers.map(id => this._players.indexOf(id))
const listeners = this.emitter.listeners(type)
for (const index of list) {
const fn = listeners[index]
if (typeof fn === 'function')
fn(msg)
else
console.error(`Ошибка, под индексом ${index} нет слушателя!`)
}
}