Подключиться к службе Azure SignalR из консольного приложения .NET Core? - PullRequest
0 голосов
/ 01 июля 2018

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

С небольшими усилиями у меня есть базовый пример Azure SignalR ChatRoom, работающий локально, подключенный к экземпляру Azure SignalR (будет запускаться только с использованием 'dotnet run' из командной строки; при запуске из Visual Studio он останавливается, как только я пытаюсь изменить имя в окне приглашения JS).

Теперь я хотел бы отправить сообщения (не нужно получать) из консольного приложения .NET Core, чтобы они отображались в экземпляре чата, к которому подключен браузер. Это делается для имитации фонового процесса, выполняющего некоторую работу, а затем отправляющего сообщение в концентратор Azure SignalR, информирующее всех клиентов о результате.

Я создал новое приложение .NET Core, и при попытке добавить пакет Microsoft.Azure.SignalR я получаю сообщение об ошибке « error: пакет« Microsoft.Azure.SignalR »несовместим с« всеми »фреймворками». в проекте 'C: ... \ TestingAzureSignalR \ ChatRoom.Console \ ChatRoom.Console.csproj'."

Есть ли где-нибудь примеры этого, которые могут мне помочь? Что-нибудь простое, например, работа с примером быстрого запуска ChatRoom?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

На сервере необходимо получить контекст концентратора, используя внедрение зависимостей, и вызвать метод SendAsync для отправки клиентам. Например:

public class Sender
{
    public Sender(IHubContext<MyHub> context)
    {
        context.Clients.All.SendAsync(...);
    }
}

Один образец можно найти здесь: https://github.com/aspnet/AzureSignalR-samples/tree/master/samples/FlightMap,, который использует таймер для передачи данных клиентам.

При возникновении ошибки «несовместимая среда» необходимо указать номер версии при добавлении Microsoft.Azure.SignalR в проект, поскольку этот пакет еще является предварительным выпуском:

dotnet add package Microsoft.Azure.SignalR --version 1.0.0-preview1-10011
0 голосов
/ 02 июля 2018

Если используемая вами версия .NET Core ниже 2.1, обновите ее до 2.1, поскольку SignalR был выпущен в .NET Core 2.1.

Дополнительная информация о SignalR в .NET Core приведена ниже: Начало работы с SignalR в ASP.NET Core

Мы можем загрузить .NET Core 2.1 SDK по адресу: Все загрузки .NET Core

Похожая тема для вашей справки:

SignalR нельзя использовать с .Net Core

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...