Отправка сообщений группам с помощью SignalR Core

Это моя первая реализация SignalR, и я начинаю с SignalR Core, поэтому некоторые примеры и документация, похоже, не применимы к новой версии.

Моя цель - отправить полученное сообщение в конкретный чат. Я понимаю, что это может быть достигнуто с помощью Groups.

Первый вопрос: я не вижу способа проверить, есть ли уже соединение в группе. Мне НЕ нужно проверять, есть ли уже соединение в Group? Я получаю ChatRoomId с каждым сообщением, поэтому я могу легко добавить пользователя/соединение в Group. Я просто хочу знать, нужно ли мне проверять, является ли соединение уже членом группы.

Второй вопрос: я хочу исключить отправителя из получения трансляции собственного сообщения. Похоже, OthersInGroup был удален из SignalR Core. Как исключить отправителя, если я отправляю сообщение Group?

Вот варианты, которые я получаю от IntelliSense:

введите здесь описание изображения


person Sam    schedule 05.01.2018    source источник


Ответы (2)


По первому вопросу:

Нет встроенного способа проверить, находится ли соединение в группе. Это зависит от вас, чтобы справиться с этим через внедренную службу в ваш концентратор, статический словарь или что-то в этом роде. Поэтому каждый раз, когда вы звоните Groups.AddAsync и Groups.RemoveAsync, вы можете это отслеживать.

По второму вопросу:

GroupExcept(string groupName, IReadOnlyList<string> excludeIds) был добавлен недавно и должен быть именно тем, о чем вы просите.

person Brennan    schedule 06.01.2018
comment
Благодарю за ваш ответ. Я установил последнюю альфа-версию через NuGet, и я не получаю GroupExcept. Вы сказали, что он был добавлен недавно, так что, возможно, он еще не попал в NuGet? - person Sam; 06.01.2018
comment
В исходном посте размещен снимок экрана с вариантами, которые IntelliSense дает мне. - person Sam; 06.01.2018

По второму вопросу: метод GroupExcept недоступен в SignalR alpha. Вам нужен предварительный просмотр. Вы можете добавить его в PM: dotnet add PROJECTNAME package Microsoft.AspNetCore.SignalR --version 2.1.0-preview1-27884 --source https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json

person Bernardo Gonzalez    schedule 07.01.2018
comment
Спасибо. Как насчет клиентских скриптов? Нужно ли их тоже обновлять? - person Sam; 08.01.2018
comment
С клиентом C# мне пришлось обновить dll, но я не могу сказать о js - person Bernardo Gonzalez; 08.01.2018