@zvonok1337

Как синхронизировать изменение данных между сайтом и c# приложением?

Здравствуйте!
Вопрос следующий:
Имеется следующая система, рассчитанная на 10.000 одновременных пользователей: 269c4ce6525848e1a63ca745e0a617aa.png
С# клиент посылает POST/GET/PUT запрос в API при совершении какого-либо события. Дальше API пересылает на сервер, сервер проводит свои манипуляции и возвращает обратно ответ API, а API - клиенту.
Например, я добавляю в текстовое поле C# какую-то информацию, нажимаю на кнопочку, оно проводит процедуру, описанную выше, и если всё ОК, то добавляет введенную информацию в программу.
В чем проблема?
Веб-сайт выполняет также роль клиента и имеет все те же функции, что и C# клиент. При использовании сайта информация в C# клиенте не обновляется, пока не произойдет ручное обновление (через нажатие на кнопочку) или обновление раз в 30 секунд (через таймер, что не есть гуд) как с минимальной задержкой (<5-10 секунд) добавить новую (или обновленную) информацию в C# клиент?
Была идея отправить long-pull запрос на сервер, но мне показалась она не очень эффективной (10.000 одновременных лонг пулл соединений - это страшно?). Что можно сделать?
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
Есть всего пара вариантов и их комбинация - постоянное соединение и непостоянное.
Если данных новых долго нет, можно рвать постоянное. Понятие долго может меняться.
Что именно это будет - сокет, вебсокет - вопрос реализации и дополнительной нагрузки.

Зачем веб сайт только не ясно.Кросс ориджин и броузер можно обращаться к апи сразу,если они на разных хостах.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kttotto
пофиг на чем писать
Вам нужны веб сокеты. Я не знаю как на php, но на C# есть хорошая библиотечка SignalR, она как раз и способна заниматься обновлением данных на клиенте, если происходят какие-то изменения в данных на сервере. Она как раз является оберткой над веб сокетами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы