Как объясняется в этом посте , когда клиент впервые подключается к серверу, создается «главный сокет / процесс» и хранятся его назначения.Позже, когда клиент присоединяется к определенным каналам / темам, сокет / процесс каждого канала копирует эти назначения и может добавлять к ним, как будет.
Теперь у меня есть случай использования, когда пользователь присоединяется к своему индивидуальному каналу(i.e. user:#{user_id})
, я получаю некоторую информацию о пользователе из БД, которая затем должна быть доступна для всех каналов, к которым позже присоединится этот пользователь.Однако я не смог найти способ поместить эту информацию в socket.assigns
, чтобы она была доступна везде.Если я попытаюсь назначить их, они будут доступны только на socket.assigns
этого конкретного user:#{user_id}
канала.
Есть ли способ сделать это?Должен ли я просто вместо этого просто попытаться получить всю эту информацию за один раз при первом подключении пользователя, а не при подключении к отдельному каналу пользователя?