Socket server, муки выбора
В свое время начал писать "велосипед" - с целью изучения возможной структуры клиент-серверного взаимодействия, Java, работы с мультипоточностью и много другого. Сервер работает, как ни странно, довольно-таки шустро и стабильно, но архитектура у него весьма печальна, начиная от плохой поддержки масштабируемости и заканчивая принципом организации обработчиков(блокируемые сокеты в парадигме "один клиент - один поток"). Задался целью поискать нормально написанные серверные решения с гибкой архитектурой и приличной скоростью работы(ну и, само-собой, бесплатные и не привязанные к какой-то платформе). В итоге нашел это: https://github.com/menacher/java-game-server . Пока что в деле не пробовал, изучаю архитектуру, но и на данном этапе могу сказать - очень грамотно ораганизован сервер, сразу заложена поддержка различных протоколов(я до этого в своей поделке только недавно дошел, когда писал клиент на Delphi), используется Spring, что, вместе с грамотной архитектурой, предоставляет очень гибкий код. Особо расписывать его прелести смысла нету, так как вопрос к тем, кто, возможно, имел дело с этим проектом: стоит ли использовать? Есть ли какие-то критические баги, ограничения архитектуры NIO, проблемы с использованием Netty? Возможно, вы знаете еще какие-то проекты с открытым исходным кодом и досутпные для использования в коммерческих проектах, удовлетворяющие вышеуказанные требования?
|