1

У меня есть группа записей уведомлений, хранящихся в базе данных с полем NotificationDateTime.Уведомления в реальном времени в приложении ASP.NET MVC Core

Мне нужно иметь возможность отображать эти уведомления пользователю в режиме реального времени по мере их появления.

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

Я считаю, что библиотека SignalR была бы идеальна для этого сценария. Тем не менее, я не думаю, что он совместим с ASP.NET Core, что и является моим приложением. Есть ли альтернативные методы, которые я мог бы использовать для чего-то подобного.

+0

SignalR '0.2.0-rtm-22752' поддерживает ASP.NET Core 1.1, см. Http://github.com/aspnet/SignalR-Server/blob/rel/1.1.0/src/Microsoft.AspNetCore. SignalR.Server/project.json, но вам, скорее всего, понадобится ночной корм, поскольку он, похоже, не находится на Nuget, или его исключены на веб-сайте https://www.nuget.org/packages?q=Microsoft.AspNetCore .SignalR – Tseng

+0

Как только я выясню, как получить ночную подачу из источника пакета, сигнал будет идеальным для использования в этом сценарии? –

+0

Несомненно, для этого был создан SignalR. Но его все еще в разработке, поэтому не все функции устаревшего клиента SignalR для ASP.NET 4.5 могут быть недоступны еще – Tseng

ответ

3

SignalR является своего рода доступным для ядра ASP.NET, но он все еще находится в разработке.

Версия 0.2.0-rtm-22752 является последней строкой против ASP.NET Core 1.1 (как видно из нее project.json).

Он не опубликован на официальном канале nuget, поэтому вам необходимо добавить aspnetcore-master источник (link).

Или в VS 2015: Инструменты> Параметры ...> Диспетчер пакетов Nuget> [+] Значок.

Добавить «https://dotnet.myget.org/F/aspnetcore-master/api/v3/index.json» в качестве источника нуджетов.

Затем пакеты aspnetcore-master становятся доступными через nuget.

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

+0

Спасибо за информацию. Я работаю с SignalR сейчас в своем основном веб-приложении asp.net. Я нашел этот небольшой учебник, который помог мне начать работу: https://radu-matei.github.io/blog/aspnet-core-mvc-signalr/. В учебнике также говорится, что использовать этот источник пакета NuGet. Теперь я пытаюсь выяснить, где на сервере мне нужно добавить мой вызов базы данных, чтобы выбрать уведомления, где NotificationDateTime = DateTime.Now() i.e.repository.GetNotifications (DateTime.Now()). Будет ли это просто ActionMethod в моем контроллере, который вызывается клиентом SignalR? –

+0

Будете осторожны, если вы используете фид в сообщении, его aspnetcore-ci-dev, ночной сборник, в котором размещаются последние пакеты, часто написанные против ночных сборок .NET Core/ASP.NET Core и часто ломаются а пакеты обновлены для новых изменений. Лучше использовать фид aspnetcore-master, его стабильные и только основные этапы будут нажиматься (т. Е. Rc1, rc2, rtm, 1.0, 1.1-preview, 1.1 и т. Д.). – Tseng

+0

получил его. Я переключился на использование aspnetcore-master. Знаете ли вы, нужен ли мне пакет AspNetCore.WebSockets, как этот учебник говорит или нет? –