Доброго времени суток.
Суть такая, есть клиенты (приложения Windows) и нужно сделать на них синхронизацию данных.
Пока есть идея такая:
1) SignalR для оповещения, что доступны новые данные;
2) RestAPI для CRUD'a;
Т.е. при каждом запросе на API, API будет говорить SignalR'y, что нужно оповестить клиентов о новых данных.
Скажите, что можно просто гонять все данные через SignalR, но, например, при первом подключении будет идти запрос на получение всех актуальных данных, а их может быть, например, 10000 (допустим данных о пользователях), SignalR может не вывезти такую нагрузку (сколько у него там ограничение, 32кб?), да и я не думаю, что это правильный путь.
На сколько это реально и правильно ли.
Главный вопрос - как сделать это правильно.
p.s. - нагрузка не большая, поэтому предполагаю, что SignalR и API будут в одном сервере.
LiptonOlolo, только эти "повозки" сейчас используют почти все сетевые игры. В которых синхронизация данных - одна из главных задач. Никаких ограничений, максимальная гибкость, максимальная скорость.
Евгений Глебов, Причем тут старый пост? Мне был интересен момент работы. Не несите чушь, кто в нынешних реалиях будет использовать сокеты, чтобы делать синхронизацию с базой?
LiptonOlolo, это вы несете чушь. Сокеты для этого подходят в самый раз. Прикручивается протобаф и гоняются данные. Тот-же SignalR - это обертка над сокетами (вебсокетами).
Я понимаю, если бы я предложил использовать сокеты и вы бы не захотели по какой-либо причине. Но вы назвали их плохим решением - с чем я не согласен.
Не знаю, существует ли какая-то серебряная пуля в синхронизации данных, думаю, что всё довольно индивидуально в зависимости от проекта.
Ваша идея вполне жизнеспособна, реализовывайте.
От себя могу добавить, что не нужно первоначальные данные грузить через SignalR, его можно использовать лишь для обновления данных.
Например, действительно ли приложению нужно сразу знать весь список пользователей? Да и нужен ли вообще целый список? В любом случае, когда уже пользователи есть, при добавлении/обновлении какого-то из пользователей можно через SignalR отправлять на все клиенты не только уведомление, но и все данные по пользователю сразу. Конечно, если нет массового обновления всех пользователей, тогда этот вариант не прокатит.
В общем, всё сугубо индивидуально
Идеи и не было, чтобы через сигнал гнать потоки данных)
Хотел использовать его в кач-ве только сервера-нотификаций, чтобы оповестить клиента, что нужно получить новые данные.
LiptonOlolo, так я наоборот сказал, что если данных немного, можно не уведомление гнать, а сразу данные ) а вообще чего, идея рабочая, идите делайте, хватит по форумам сидеть ))