Единственный минус - именно таймер. Стоит освоить полностью событийное взаимодействие и все операции проводить именно так. Для примера, есть протокол GraphQL и в нем есть Subscription, работающий как раз на websocket. Другие операции в GraphQL сервере генерируют события и они отсылаются всем кто на них подписан.
В случае более сложном добавляется только хранение маппинга пользователь-соединение и отсылается на все соединения пользователя в цикле новые данные