Stackexchange.Redis, могу ли я публиковать сразу на нескольких каналах?

Могу ли я публиковать сообщения в нескольких каналах в рамках одной команды, используя шаблон в стиле глобуса, например Connection.GetSubscriber().Publish("room/*", "my message"), и сообщение публикуется на всех каналах, соответствующих шаблону?

Может быть, в приведенном выше вопросе нет смысла, если я неправильно понимаю базовый шаблон pub / sub в Redis. Насколько я понимаю, каждая команда Subscribe устанавливает канал на сервере Redis, и, следовательно, идентификаторы каналов известны серверу, и, следовательно, когда сервер получает команду публикации, он должен иметь возможность «разветвлять» опубликованные сообщения на все каналы, которые соответствовать шаблону в стиле шара. Пожалуйста, поправьте, если я ошибаюсь.

Дополнительный вопрос, я полагаю, я также могу подписаться на несколько каналов, используя шаблон в стиле глобуса, правильно?

Спасибо


person Matt    schedule 26.04.2014    source источник
comment
Поскольку ответ на несколько публикаций не поддерживается. Но мы могли бы создать собственный cmd публикации через lua-скрипт и запустить с помощью EVAL cmd. Я не тестировал это, но хотел попробовать. Также обратите внимание, что cmd будет атомарным по своей природе, обеспечивая публикацию по всем каналам через скрипт.   -  person Nik    schedule 26.04.2014


Ответы (1)


Вы можете подписаться на подписки на каналы на основе шаблонов, но когда вы публикуете, вы публикуете с одним именем канала. Все соответствующие подписки (конкретные или основанные на шаблоне) получат сообщение. Нет никакого «разветвления», кроме глобальных подписок.

person Marc Gravell    schedule 26.04.2014
comment
Это отстой. Я перешел на Redis, потому что RabbitMQ был слишком тяжелым и болезненным для настройки и настройки. Итак, теперь я добавил цикл: / - person TheRealChx101; 08.11.2019