Группы SignalR - фильтрация, выполняемая на клиенте или сервере? - программирование
Подтвердить что ты не робот

Группы SignalR - фильтрация, выполняемая на клиенте или сервере?

Я читал приличную сумму относительно концентраторов и групп SignalR. В частности, я заметил, что вы не можете получить количество подключений в определенной группе.

Является ли фильтрация для групп обработанными на клиенте или сервере? Если сервер, почему SignalR не может выставить счет? Если на клиенте есть способ отправлять сообщения только конкретным клиентам?

4b9b3361

Ответ 1

Когда вы отправляете сообщение определенной группе определенного соединения, на сервере происходит фильтрация (нет фильтрации, вы просто обращаетесь к этому соединению или группе).

SignalR основан на pub sub, поэтому нет списка соединений как таковых. Если вы хотите отслеживать список подключений, вам необходимо обработать соединение и отключить события и сохранить их в памяти или в каком-либо постоянном хранилище.

Причина, по которой мы не предоставляем вам список соединений, заключается в том, что любое состояние, которое мы храним, болит, масштабируя узлы. Если мы предоставили вам список подключений, это яма неудачи, потому что если вы добавите еще одну веб-страницу node в свою ферму, вам придется синхронизировать состояние через нее. Мы разрешаем вам обращаться к отдельным соединениям или группам через их идентификатор, и это позволяет нам использовать шину сообщений для публикации всем подписчикам этого идентификатора.