Я внедряю API-интерфейс Client-Server с длительным временем обработки работы (в некоторых случаях порядка нескольких минут). Некоторые вызовы api короткие и отвечают немедленно, но купе требуют некоторой внутренней обработки. Я использую node.js в качестве веб-сервера. Мой текущий implementaion выглядит следующим образом -Async RestFul vs Websocket
Клиент (браузер) < -> узел JS < -> двигатель
Двигатель является фоновым процессом, который обрабатывает каждую работу (C++ код). Все взаимодействия - это http. Теперь, традиционно, я бы использовал длинные рабочие места, такие как async ajax/restful запросы и короткие задания как синхронизирующие запросы.
Я буду иметь статус обновления для длинных рабочих мест обработки (обработка больших объемов данных) - как промежуточные результаты, процент завершения и т.д.
Я loolking в WebSockets в качестве альтернативы (и я относительно новым для него). Вот мои вопросы -
- Должен ли я смотреть в WebSockets для длинных рабочих мест вместо асинхронной RESTful API (я хотел бы, чтобы избежать работы с клиентами-таймаут, продолжительная опроса и т.д.)?
- Как насчет перемещения всех запросов на веб-сайты (зачем вообще вообще отдыхать?)
- В целом, любые рекомендации по реализации этой архитектуры. (Раньше я работал над проектами со взаимодействием между веб-сервером и движком в качестве простого TCP-соединения с пользовательскими командами.)
ПРИМЕЧАНИЕ. - Меня не беспокоит поддержка кросс-браузера (особенно в старых версиях) Теперь.
Как показано ниже, nodejs отлично играет с веб-сайтами, используя socket.io. Если браузер не поддерживает веб-сайты, он переходит к другому протоколу, но все же работает. Я думаю, что это был бы eaiser, чем поиск C++-решения. – coffekid