Russian Qt Forum
Ноябрь 22, 2024, 16:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Организация взаимодействия прикладного и веб-сервера  (Прочитано 5848 раз)
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« : Август 25, 2016, 18:34 »

Коллеги, проблема, вроде простая, но у меня нет нужного опыта.
Имеется серверное приложение, задача которого - обеспечение взаимодействия с различными устройствами (опрос состояния и управление этими устройствами). Сейчас пользователи подключаются к нему через интернет с клиентского приложения, которое может работать в синхронном (запрос/ответ) и асинхронном режиме (сервер сам чего-то там делает, например, опрашивает устройства, а клиент просто получает результаты опроса и отображает их).

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

Пока не соображу, как обеспечить взаимодействие серверного приложения с веб-сервером. Я вижу два пути:
- на веб-сервере разместить весь функционал серверного приложения. Но что-то мне не нравится это - оба сервера многопотоковые, два типа соединения, два протокола, какая-то каша получается;
- межпроцессное взаимодействие. А тут много вариантов. Может, в моей ситуации есть что-то очевидное? Я поэтому и описал задачу, как мне кажется, излишне подробно.
Помогите с советом, пожалуйста.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
VPS
Гость
« Ответ #1 : Август 25, 2016, 19:56 »

Я бы, наверное, остановился на взаимодействии web-приложения с серверным по протоколу, который уже используется для взаимодействия с desktop-ным клиентом.

P/S: а правильно я понял, что пользователи будут работать через браузер? Если так, то для оповещения клиентов в асинхронном режиме можно использовать WebSocket.
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #2 : Август 25, 2016, 20:00 »

P/S: а правильно я понял, что пользователи будут работать через браузер? Если так, то для оповещения клиентов в асинхронном режиме можно использовать WebSocket.
Да, через браузер. Насчет WebSocket - мне казалось, что далеко не все браузеры его поддерживают, или я ошибаюсь?
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
VPS
Гость
« Ответ #3 : Август 25, 2016, 20:13 »

Да, через браузер. Насчет WebSocket - мне казалось, что далеко не все браузеры его поддерживают, или я ошибаюсь?
Да, вроде не все.
Но тогда Вам надо будет на самой странице настраивать интервал опроса web-сервера, чтобы имитировать работу асинхронной части.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #4 : Август 26, 2016, 13:06 »

но зачем менять хорошее решение с клиентом на qt на веб браузер ?
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #5 : Август 26, 2016, 17:57 »

Чтобы не ставить программу пользователям. И чтобы не делать клиентских програм под винды, андроид и линукс.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #6 : Август 26, 2016, 21:41 »

Чтобы не ставить программу пользователям. И чтобы не делать клиентских програм под винды, андроид и линукс.

это иллюзия, ибо браузерное решение очень плохое, интерфейс нормальный написать или нельзя или сложно, да и неудобно
кроме плюса "что не писать клиента" одни минусы
а еще сам браузер глючит
говорю как переходящий от браузера на "клиент" )
Записан
Bepec
Гость
« Ответ #7 : Август 27, 2016, 09:09 »

Моё мнение - надо писать отдельно веб сервер и расширять протокол под него. Ибо с клиентским апи сделать нормальную веб морду не получится. Точнее нормальную можно, но она будет дырявой Веселый
Записан
sergek
Гипер активный житель
*****
Offline Offline

Сообщений: 872


Мы должны приносить пользу людям.


Просмотр профиля
« Ответ #8 : Август 27, 2016, 12:04 »

Спасибо, именно к этому выводу я тоже пришел.
Записан

Qt 5.13.0 Qt Creator 5.0.1
Win10, Ubuntu 20.04
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.