Как обновить подписки на каналы с помощью ServiceStack + Redis?

В ServiceStack с Redis для pubsub вызов SubscribeToChannels(ChannelName) блокируется. Каков будет рекомендуемый подход для динамического изменения каналов, на которые подписаны?

Например, если у меня есть список тысяч людей, я хочу подписаться на изменения только для "bob" (Person id=1). Позже я мог бы также захотеть отслеживать изменения в "john" (Person id=2).

Если я подпишусь на изменения для всех пользователей, то событие будет инициировано для всех изменений людей, даже если я только хочу прослушать подмножество и вызовет дополнительную фильтрацию. Со стороны издателя это означает, что мне нужно публиковать имена каналов со встроенным идентификатором, скажем, publish("person:2").

Сервис, который хочет, чтобы "все пользователи" могли подписаться на человека:*

Будет ли непросто настроить своего рода "фабрику подписок", которая будет отслеживать новые запросы на подписку (например, person "john"), а затем раскручивать новый поток?

предложения?

До сих пор я нахожу ServiceStack отличной платформой (Services + SQLServer ORM) и с нетерпением жду интеграции Redis для подсистемы уведомлений.

0 ответов

Другие вопросы по тегам