Что я должен использовать в своем сценарии signalr или worker service?
Я создаю приложение, которое очень похоже на Google keep. Проблема заключается в следующем сценарии.(синхронизация в реальном времени)
Рассмотрим, что пользователь посещает мой веб-сайт на 2 устройствах, то есть ноутбуке и настольном компьютере.
Когда он редактирует/добавляет/удаляет любую новую заметку, то другое устройство должно немедленно синхронизироваться.
Мой бэкэнд-это проект .NET Web API, а передний конец будет react.js проект.
Поэтому я придумал следующие способы сделать это.
1. SignalR в основном используется для обмена сообщениями в режиме реального времени, где он уведомляет о любых изменениях в моем интерфейсе.
2. Рабочая служба, подумайте, как только вы войдете внутрь, я буду вызывать рабочую службу, которая отправит ответ, как только произойдет изменение в моей базе данных. Базовым sceanario было бы что-то вроде следующего:
Шаг 1. пользователь входит в систему, используя свою учетную запись.
Шаг 2. Как только я вхожу в систему на других устройствах или на том же устройстве, запускается рабочая служба, которая продолжает прослушивать любые изменения в моей базе данных.
Шаг 2. пользователь нажимает кнопку"+", чтобы создать новую заметку на первом устройстве.
Шаг 3. Интерфейс реагирует делает вызов моей серверной(создания открытого API)
Шаг 4. Реагировать интерфейс делает использование UseEffect за ответ и обновления пользовательского интерфейса.
Шаг 5. Как только 1-е устройство делает вызов create API, происходит изменение, а затем второе устройство получает обновленные данные.
есть 2 вопроса,
1.Is SignalR-это лучший способ сделать это? Возможно, мне не понадобится SignalR для других вещей.
Хотя, с другой стороны, служба рабочих может просто подойти для такого маленького проекта, как мой? Я не знаю, является ли это правильным вариантом использования для меня, чтобы использовать службу Worker.
2. Может ли frontend постоянно опрашивать информацию о любых изменениях в базе данных. Работает ли useEffect в правильном контексте здесь?
Спасибо
Что я уже пробовал:
Исследовал на рабочем сервисе и SignalR, но запутался, чтобы решить, какой из них выбрать в моем сценарии.
Gerry Schmitz
Какой смысл синхронизировать автоматическое устройство? Пусть устройство синхронизируется само по себе, когда оно активировано. Представьте себе тысячи бесхозных устройств, которые бессмысленно синхронизируются.
Member 14929601
Спасибо за Ваш вклад, но я просто изучал идею :) синхронизации в режиме реального времени, чтобы узнать больше об этом в моем приложении. Если я могу спросить, идея синхронизации автоматического устройства справедлива и для google keep, не так ли? или они делают что-то другое? Кроме того, я случайно заметил, что вид обновляется через несколько секунд, и есть также кнопка обновления, предназначенная для обновления вида.
Gerry Schmitz
Вы думаете только об одном случае: кто-то смотрит на экран, ожидая обновления. Происходить редко. Они нажимают кнопку Обновить, даже если она не нужна или находится на каком-то интервале опроса. Идея постоянного "проталкивания" данных, даже когда их не просят, "неэффективна". И Google не платит за пропускную способность, которую "вы" используете.
Member 14929601
Спасибо, я понял твою точку зрения. Я действительно хотел бы, чтобы они заплатили за мою пропускную способность :D
Gerry Schmitz
Может быть, то, что вам действительно нужно, - это "роуминговые данные". У меня есть приложение UWP, и в нем есть "перемещаемые данные" (настройки). Я планирую иметь "перемещаемые файлы" (пользовательские данные). Все это обрабатывается Windows 10.
https://docs.microsoft.com/en-us/windows/uwp/design/app-settings/store-and-retrieve-app-data
Member 14929601
Спасибо, я все проверю..