Выбор сетевого фреймворка

darcaster

Последний из атеистов
Пользователь
Сообщения
18
Розыгрыши
0
Репутация
0
Реакции
0
Баллы
823
Всем привет, комрады! Вопрос назрел: Какой из сетевых фреймворков выбрать для эмуля сервера MMO ? Нужно:
1. Кроссплатформенность (Windows, Linux, NetBSD)
2. Способность держать большой онлайн, и решение проблемы 10 000.
3. Желательно по стилю ближе C++ 03, это raw pointers и никаких auto в коде.
Из того, что имеем: это POCO, ACE, Asio.

Asio совсем мимо пункта 3, но если есть огромные преимущества, то можно проглотить.

ACE использует Мангос и ТуртлВов; на Asio живёт TrinityCore. Собственно вопросы,
- может ли кто-то что-то рассказать про POCO именно в ключе вопроса ММО фришардов;
- есть ли пример сервера с живым онлайном в 5к на базе Asio;
- примеры проблем с этими фреймворка и, если у кого-то были, или причины и опыт миграции с одного на другой.
- возможно, есть ещё достойные и проверенные решения, которые я не упомянул
//Start
 

Всем привет, комрады! Вопрос назрел: Какой из сетевых фреймворков выбрать для эмуля сервера MMO ? Нужно:
1. Кроссплатформенность (Windows, Linux, NetBSD)
2. Способность держать большой онлайн, и решение проблемы 10 000.
3. Желательно по стилю ближе C++ 03, это raw pointers и никаких auto в коде.
Из того, что имеем: это POCO, ACE, Asio.

Asio совсем мимо пункта 3, но если есть огромные преимущества, то можно проглотить.

ACE использует Мангос и ТуртлВов; на Asio живёт TrinityCore. Собственно вопросы,
- может ли кто-то что-то рассказать про POCO именно в ключе вопроса ММО фришардов;
- есть ли пример сервера с живым онлайном в 5к на базе Asio;
- примеры проблем с этими фреймворка и, если у кого-то были, или причины и опыт миграции с одного на другой.
- возможно, есть ещё достойные и проверенные решения, которые я не упомянул
//Start
Когда я последний раз смотрел POCO оно не умело в epoll, а тебе он по хорошему нужен, чтобы хендлить большое количество коннектов. Если они допилили, то можно посмотреть. Но кажется если ACE используется в 2-х проектах, а буст не подходит, то стоит в его сторону смотреть как минимум из-за того, что есть рабочий пример, а сетевой стек всегда можно заменить

Тут кажется мало тех кто имплементил/юзал разные сетевые стеки в c/cpp. Если бы не ограничение по версии языка - я бы брал asio, но его надо уметь готовить. А так, обычно не так много и требуется, можно и свой написать или какой легковестный мультиплексирующий системные вызовы в гитхабе найти
 
Только Asio. Достаточной быстрый и простой асинхронный фреймворк для тех, кто не хочет заморачиваться и писать свои обертки над epoll/kqueue/winsock. Практически ничего лишнего, никаких HTTP, криптографии, работы с форматами и прочего хлама.
Компилятор от C++11. Если требование C++03 это вкусовщина а не доступный компилятор, то можно написать достаточно простые обертки.
 
Последнее редактирование:
Только Asio. Достаточной быстрый и простой асинхронный фреймворк для тех, кто не хочет заморачиваться и писать свои обертки над epoll/kqueue/winsock. Практически ничего лишнего, никаких HTTP, криптографии, работы с форматами и прочего хлама.
Компилятор от C++11. Если требование C++03 это вкусовщина а не доступный компилятор, то можно написать достаточно простые обертки.
Ну вот тут есть пара моментов:
1. Не всегда криптография и http это мусор (хотя их всегда можно докинуть, и да, POCO в этом плане выглядит как too much)
2. Есть ли примеры живого использования того же TrinityCore на проде ?
3. Насколько ASIO будет быстрее (из-за обилия smart pointers и т.д. будет профитнее, скажем стандартной сетки от .net core и C#) ?
 
Насколько ASIO будет быстрее (из-за обилия smart pointers и т.д. будет профитнее, скажем стандартной сетки от .net core и C#) ?
Умные указатели дают минимальный оверхед, болезненный только если счётчик ссылок в shared_ptr. unique_ptr не стоит ничего( ну мож оптимизации компилятор какие пропустит). буфер асио позволяет с минимумом копирований с данными работать, но для 10к онлайна пофиг. asio будет быстрым настолько насколько возможно для обертки
 
Назад
Сверху