Доброго времени суток.
Суть такая, есть клиенты (приложения Windows) и нужно сделать на них синхронизацию данных.
Пока есть идея такая:
Т.е. при каждом запросе на API, API будет говорить SignalR'y, что нужно оповестить клиентов о новых данных.
Скажите, что можно просто гонять все данные через SignalR, но, например, при первом подключении будет идти запрос на получение всех актуальных данных, а их может быть, например, 10000 (допустим данных о пользователях), SignalR может не вывезти такую нагрузку (сколько у него там ограничение, 32кб?), да и я не думаю, что это правильный путь.
На сколько это реально и правильно ли.
Главный вопрос - как сделать это правильно.
p.s. - нагрузка не большая, поэтому предполагаю, что SignalR и API будут в одном сервере.
Я бы использовал SignalR для передачи сообщения о новых данных, после чего клиенты сами должны вызывать нужный API для синхронизации.
Реально ли отдать с API, например, 10МБ данных в JSON'e?
зачем отдавать 10мб в json, делайте отдачу постранично. Ну и 10мб это немного.
Как будет лучше, использовать отдельный сервер с SignalR и отдельный для API? Или можно всё в 1 закинуть?
Серверы можете использовать как вам нравится (зависит от ваших требований), для клиентов разницы нет. Разве что аутентификацию дважды проходить.
Вы на клиенте должны сохранять время последней синхронизации, чтобы не пересылать всю бд, а только те данные, что были со временем последней синхронизации обновлены/добавлены
По идее для вас не должно быть разницы, синхронизируется клиент просто каждые полчаса или по сигналу, апи для синхронизации тот же будет.
А возможно ли использовать один JWT токен для SIgnalR и API, если они будут раздельными?
По поводу jwt - зависит от того, кто и как его выдал, ведь вам на сервере надо будет проверить его валидность.
как правильно сохранить данные у клиента и проверить их на сервере при подключении? Как мне на клиенте понять, что из базы удалили, например, 1 заказ?
Тут много способов. Во первых из бд заказ не удаляется, он помечается как удаленный. Вы можете все действия хранить в отдельной таблице с датой/временем и накатывать эти действия на клиента или вы можете хранить дату последнего изменения заказа в таблице заказов и по этой дате понимать, надо этот заказ синхронизировать или нет. Тут все полностью от вашей задачи зависит.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Входными данными является строка, содержащая один из символов!?;:() например: "a; fg x; x y;"
у меня есть спавнер, и нужно чтоб он через время удалял объект что заспавнил, и вот я думаюкак мне повесить скрипт на уже СОЗДАННУЮ КОПИЮ, или...
помогите реализовать логику генерации монетокВ целом код работает, только выдает ошибку Null Reference из-за того, что монетка не создана, а я пытаюсь...