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