All posts

Project archive

Итак. Необходимость сделать один из моментов на сервере как положено, а не тяп-ляп привела к…

Итак. Необходимость сделать один из моментов на сервере как положено, а не тяп-ляп привела к почти 2 неделям проб и ошибок.

Но..... победа! Это короткая версия.

Подлиньше. На сервере была написана небольшая програмка, которая выполняла функции таймера. И пока эта прграмка запускалась под единой крышей, вме было хорошо. Все другие компоненты брали с нее данные и все жужжало. Проблема настала, когда появилась необходимость доступа к этой информации из другой программы. И эта другпюая программа из за массивной работы с БД не хотела уже пускаться из под общей крыши.

Я много дней ковырял и так и этак, дабы добиться доступа, но как я не выворачивал, доступа либо не было, либо только к неработающему сегменту, либо запускалась еще одна копия, которая естественно уже была не в синхроне.

А это важно. Ибо именно от этого таймера пляшут все игровые события, синхронизация клиента и сервера и т.д.

К тому же при перспективе разноса частей сервера на разные ресурсы, надо было либо наладить полную связь, либо издумывать другие варианты архитектуры. Текущий вариант хоть и работал, и была врюозможность накостылить, но был тупиком.

Посему пришлось интегрировать в сервер еще один фреймворк - Spring и посредством него и его архитектуры подымать отдельный сервер, который отвечает за раздачу и обработку API запросов.

На человеческом - теперь любая программа, которая знает нужный http адрес и имя узла, может послать запрос на получение значения переменной и получить ответ с содержимым. Хоть внутри одной железки, хоть с Австралии.

Что это в целом дает. Относительно быструю связь между разными частями сервера без использования баз данных. Возможность быстрого написания отдельных графических интерфейсов для контроля и управления сервером. Быстрого - это например на контроллер и визуал с таймера, уйдет нуу... полчаса. Если приналовчиться и с готовых образцов, то еще быстрее. И это добро может работать с любой другой машины.

В итоге. Сделал. Работает. Получил кучу опыта и знаний в процессе.

Да долго, нежданные 2 недели, но это надо было сделать. Коряво работающий таймер держал компонент, который на сервере отрабатывает смену состояний корабля. А без него не будут кораблики летать и садиться как положено.

Сегодня уже донакидал интерфейс и логику на стороне клиента для севших и взлетающих кораблей. Не до конца, но много.

Скоро начнем летать!

Project Facebook profile