Название: Правильная архитектура сервера/клиента Отправлено: olimpset от Ноябрь 13, 2018, 02:37 Написал сервер. Теперь нужно создать новый проект "клиент", и я не знаю использовать ли для клиентского приложения QT или прибегнуть к boost::asio?
В идеале должна быть такая архитектура, как и в большинства профессиональных серверов: Сервер на QT и множество независимых клиентов (клиент на c#, клиент на c++ и так далее). И не знаю теперь, писать ли клиентов с использованием QT. Хочу сделать изначально с жизнеспособной артитектурой, что бы потом можно было также интегрировать скриптовый язык (lua, к примеру). Название: Re: Правильная архитектура сервера/клиента Отправлено: Old от Ноябрь 13, 2018, 07:43 Написал сервер. Теперь нужно создать новый проект "клиент", и я не знаю использовать ли для клиентского приложения QT или прибегнуть к boost::asio? Qt и asio это инструменты, использовать можно любой. Я бы наоборот сервер писал на asio, а клиенты в зависимости от их назначения или на asio или на Qt.В идеале должна быть такая архитектура, как и в большинства профессиональных серверов: Опять же инструмент никак не связан с архитектурой приложений. Интегрировать lua можно в любой проект, хоть с Qt, хоть без, главное продумать качественный API для ядра, чтобы из скриптов удобно было с ним работать.Сервер на QT и множество независимых клиентов (клиент на c#, клиент на c++ и так далее). И не знаю теперь, писать ли клиентов с использованием QT. Хочу сделать изначально с жизнеспособной артитектурой, что бы потом можно было также интегрировать скриптовый язык (lua, к примеру). Название: Re: Правильная архитектура сервера/клиента Отправлено: RedDog от Ноябрь 13, 2018, 11:38 Какие требования к серверу, сетевому протоколу?
Qt-шный тсп сервер у меня в проекте может обрабатывать около 30-50к сообщений в секунду, при 50-100 подключениях. Сообщение около 3-5кб. БОльшей производительности я не знаю как от него добиться, но для моих задач текущей за глаза, и посадка идёт не в сети (пока). Название: Re: Правильная архитектура сервера/клиента Отправлено: ViTech от Ноябрь 13, 2018, 12:21 Я бы Qt использовал только в GUI части, а сервер и ядро клиентов старался бы писать средствами стандартной библиотеки C++ и тех библиотек, которые планируется туда добавить в новых стандартах С++. Например, Networking TS базируется на части Boost.Asio.
Название: Re: Правильная архитектура сервера/клиента Отправлено: Old от Ноябрь 13, 2018, 18:34 Какие требования к серверу, сетевому протоколу? В локальной сети сервер работает?Qt-шный тсп сервер у меня в проекте может обрабатывать около 30-50к сообщений в секунду, при 50-100 подключениях. Сообщение около 3-5кб. БОльшей производительности я не знаю как от него добиться, но для моих задач текущей за глаза, и посадка идёт не в сети (пока). Название: Re: Правильная архитектура сервера/клиента Отправлено: RedDog от Ноябрь 13, 2018, 22:25 В локальной сети сервер работает? Да. Гигабитной, если это важно.Название: Re: Правильная архитектура сервера/клиента Отправлено: Old от Ноябрь 13, 2018, 23:40 Да. Гигабитной, если это важно. Вы пишите что в сеть не упираетесь, хотя судя по вашим цифрам как раз упираетесь в гигабит (это при минимальных значениях, которые вы указали - 30К сообщений по 3К каждое). Название: Re: Правильная архитектура сервера/клиента Отправлено: RedDog от Ноябрь 14, 2018, 07:37 Вы пишите что в сеть не упираетесь, хотя судя по вашим цифрам как раз упираетесь в гигабит (это при минимальных значениях, которые вы указали - 30К сообщений по 3К каждое). Я имел ввиду, что быстродействие сервера не является узким местом в моем случае.В тестах производительности еще и локалхост участвовал несколькими подключениями. А цифры привел для понимания производительности Qt механизмов. Название: Re: Правильная архитектура сервера/клиента Отправлено: vbv от Ноябрь 14, 2018, 13:38 Поглядываю на этот тред и удивляюсь, сколько "экспертов" обсуждают "сферический клиент-сервер в вакууме".
О задаче ничего не известно, но обсуждений ...... |