Можно ли с помощью SignalR выполнять массовую отправку сообщений меняющейся коллекции клиентов?

То, о чем я прошу, может отличаться от группового толчка, когда набор клиентов обычно остается относительно постоянным.

В системе уведомлений клиенты могут создавать события, на которые подписаны не все остальные клиенты. Например, клиент указывает, что он не хочет получать уведомления о новых входах в систему, но хочет знать, когда публикуется новая фотография только от определенных пользователей. Комбинации бесконечны и создаются на лету, поэтому групповой толчок невозможен.

При каждом событии будет создаваться новая коллекция клиентов, которые получат уведомление. Есть ли способ сделать это с помощью массовой рассылки, а не отдельных личных сообщений?

Будет ли способ реализовать это создание групп «на лету» (на стороне сервера), добавление клиентов в эту группу, а затем отправка сообщения этой группе?

Спасибо.


person ElHaix    schedule 13.03.2012    source источник


Ответы (1)


Я не понимаю, зачем вам группы? Клиенты, которые подписываются на событие foo через:

$.connection.myHub.foo = function() { }

Будет уведомлен о событии. В чем мы сейчас не так хороши, так это в динамическом создании и удалении событий, но эта поддержка будет улучшена.

Если вы хотите что-то динамичное, единственным вариантом будет использование групп.

person davidfowl    schedule 14.03.2012
comment
Да, пользователи могут подписываться на события, однако некоторые пользователи могут не захотеть видеть некоторые события от других пользователей или разрешать пользователям видеть свои события. Например, вы запретили пользователю просматривать ваши мероприятия. Поэтому, когда вы входите в систему, если этот заблокированный пользователь также вошел в систему, он не увидит ваше событие входа в систему, но все остальные увидят. Поэтому я думал добавить всех действительных пользователей в группу уведомлений для этого события, а затем отправить в группу. Группа существует до тех пор, пока уведомление не будет отправлено, а не повторяется по этому списку и выполняет отдельные частные отправки. Рекомендуемый метод? - person ElHaix; 14.03.2012
comment
Используйте группы. Отслеживайте членство в других местах и ​​используйте группы, чтобы выбрать, какие клиенты должны получить какое сообщение. - person davidfowl; 14.03.2012