javascript — JS Frontend & lt; — & gt; Бэкэнд C ++ (разные серверы)

Я работаю над проектом, который состоит из веб-шрифта и фонового сервиса.
Веб-интерфейс доступен пользователям и должен взаимодействовать с фоновым сервисом, который написан на C ++ и работает на (возможно, нескольких в будущем) другой машине.

FYI:
фоновый сервер (в будущем он будет называться backend) действует как http-сервер и прослушивает входящие запросы на определенный порт.

Пока что внешний интерфейс отправляет команды на сервер с простыми http-запросами, содержащими данные в формате xml или json.

Ну, теперь вот моя проблема:
Поскольку пользователь вводит данные во внешний интерфейс, внешний интерфейс ожидает, что некоторые данные из внутреннего интерфейса будут отображать их пользователю или использовать их внутри наших баз данных.

Можете ли вы порекомендовать какие-либо способы обработки данных, отправляемых из серверной части в интерфейс?

Моя текущая идея:
Бэкэнд получает ссылку при запуске, своего рода pingback url, который он может вызвать, если есть какие-либо данные для возврата во внешний интерфейс. Вызываемый файл вводит входящие данные где-то для хранения, например, memcache или база данных только для mem.
Я планирую написать веб-интерфейс в javascript, возможно, с использованием инфраструктуры, такой как Ember.js или Angular.js, которая может автоматически обрабатывать такие обновления данных. В любом случае, он должен обновлять интерфейс как можно в реальном времени, используя как можно меньше ресурсов.

Мой текущий подход работает или это просто глупо?

Итак в общем
Можете ли вы дать мне советы, как улучшить вышеуказанную схему или предложить какие-либо другие способы, как этого добиться?

Я уже гуглил это, но все, что я нашел, было Разработка Javascript-интерфейса <-> Бэкэнд C ++, но он просто хотел, чтобы его бэкэнд был на одной машине, у меня разные.

Редактировать:
Я забыл самую важную деталь (или я так думаю): в настоящее время существует только один внутренний экземпляр, который обрабатывает множество клиентов. У каждого пользователя во внешнем интерфейсе есть по крайней мере один клиент, связанный с менеджером клиентов (бэкэнд). Таким образом, может быть много данных, возвращаемых от менеджера.

Настоящая проблема здесь (или, по крайней мере, я думаю, что это самая большая проблема) заключается в том, как я должен распределять возвращенные данные каждому клиенту.

Padmak

1

Решение

Есть 2 хороших способа обработки отправки данных из серверной части в интерфейс.

  1. клиентская сторона опрашивает бэкэнд на некотором интервале, это очень распространенная практика, но крайне неэффективная, если вы собираетесь делать миллион обратных вызовов

  2. использовать веб-сокеты, http://en.wikipedia.org/wiki/WebSocket

0

Другие решения

Я не настолько знаком с C ++ как бэкэнд-веб-сервис, но если вы слушаете порт и обрабатываете URL-адреса (через какой-то тип контроллера?), Тогда ajax будет лучшим решением, вы можете настроить URL-адрес для отправки данных из интерфейс и вернуть данные из вашего сервиса. Я заметил, что вы добавили angular.js и ember.js в качестве тегов.

Если вы используете их, у них обоих есть отличные фреймворки для работы с ajax, не уверен насчет ember, но angular.js использует «ресурсы», которые стоит искать в Google.

Надеюсь, я правильно понял ваш запрос.

Кроме того, если вы используете angular и хотите почувствовать в реальном времени, вам следует взглянуть на модели, привязку данных и метод $ watch. Вы можете отправить ajax-вызов после того, как входные данные будут немедленно изменены на внешнем интерфейсе, однако вы захотите добавить некоторый тайм-аут, чтобы вы не отправляли запросы на внутренний сервер.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector