JgServer — это серверный контейнер, разработанный с использованием языка Java и основанный на таких фреймворках, как Netty, Spring, MyBatis и Redis. Он поддерживает протоколы Tcp, Socket, WebSocket(SSL) и HTTP(S).
Проект позволяет настраивать различные сетевые протоколы и может использоваться для создания серверной части игр (в данном случае JavaGameServer, который был создан для разработки полной архитектуры Java-игровых серверов).
Код проекта прост в понимании, хорошо документирован и легко расширяется.
Используемые фреймворки: Spring, Netty, MyBatis, Redis, junit, log4j и др.Проект уже включает ряд стандартных инструментов: обработку сообщений (включая JSON строки, двоичные byte сообщения), механизм событий, проверку сердцебиения, управление логами, планирование задач, фреймворк работы с базой данных, пулы соединений с базой данных и др. #### Кодовая структура проекта
D:.
├─.idea
│ └─inspectionProfiles
├─etc скрипты
│ └─sql
├─logs логи
├─src
│ ├─main
│ │ ├─java
│ │ │ ├─com
│ │ │ │ └─lizhaoblog
│ │ │ │ ├─base основные библиотеки
│ │ │ │ │ │ ├─concurrent конкурентность
│ │ │ │ │ │ │ ├─commond
│ │ │ │ │ │ │ ├─dictionary
│ │ │ │ │ │ │ └─handler
│ │ │ │ │ │ ├─constant константы
│ │ │ │ │ │ ├─event события
│ │ │ │ │ │ ├─exception исключения
│ │ │ │ │ │ ├─factory фабрики
│ │ │ │ │ │ ├─message сообщения
│ │ │ │ │ │ ├─mybatis инструменты работы с базой данных
│ │ │ │ │ │ ├─network сетевые компоненты
│ │ │ │ │ │ │ ├─customer клиенты сети
│ │ │ │ │ │ │ ├─listener слушатели событий
│ │ │ │ │ │ │ └─processor обрабатывающие потоки
│ │ │ │ │ │ ├─redis работа с Redis
│ │ │ │ │ │ ├─session управление сессиями
│ │ │ │ │ │ ├─util вспомогательные утилиты
│ │ │ │ │ │ └─xml XML конфигурационные файлы
```│ │ │ │ │ ├─demopro тестовый код
│ │ │ │ │ │ └─net
│ │ │ │ │ └─server основной пакет
│ │ │ │ ├─biz бизнес логика
│ │ │ │ │ ├─constant константы
│ │ │ │ │ ├─dao DAO слои
│ │ │ │ │ │ └─mysql
│ │ │ │ │ ├─dictionary словарь сообщений
│ │ │ │ │ ├─entity ENTITIES
│ │ │ │ │ │ └─cfg XML конфигурационные файлы
│ │ │ │ │ ├─event конкретные события
│ │ │ │ │ ├─handler обработчики
│ │ │ │ │ └─scheduled планировщики задач
``` │ │ │ │ │ └─services сервисный процессор
│ │ │ │ │ └─impl
│ │ │ │ ├─channel различные протоколы
│ │ │ │ │ └─tcp TCP протокол
│ │ │ │ │ └─str
│ │ │ │ ├─core ядро сервиса
│ │ │ │ │ ├─customer потребители
│ │ │ │ │ ├─listener
│ │ │ │ │ └─processor
│ │ │ │ └─pojo конфигурационные файлы
│ │ │ └─org
│ │ │ └─apache
│ │ │ └─ibatis
│ │ │ └─builder
│ │ │ └─annotation переопределение MyBatis
│ │ └─resources ресурсы
│ │ ├─cfg конфигурация CFG
│ │ │ └─data-static-config сущность CFG
│ │ ├─mybatis
│ │ │ └─jpa
│ │ ├─properties
│ │ └─spring
│ └─test тестовое кодирование
│ └─java
│ └─com
│ └─lizhaoblog
│ ├─common
│ ├─demopro
│ │ └─net
│ ├─javase
│ └─server тестирование сервера
│ └─channel
│ └─tcp
│ └─str
└─target#### Программный фреймворк
1. Используемые фреймворки: Spring, Netty, MyBatis, Redis, JUnit, Log4j и т. д.
2. Интегрированная среда разработки: IntelliJ IDEA
3. Версия JDK: 1. 8#### Конфигурационные файлы
1. db-config-dev.properties: конфигурация базы данных
2. server-config-dev.properties: свойства сервера
3. etc--sql--jg_server.sql: скрипт базы данных
4. redis-config-dev.properties: свойства Redis
5. xml-cfg-config-dev.properties: свойства xml-cfg
#### Предварительные условия запуска
1. server-config-dev.properties: свойства сервера требуют изменения
- protocolType=TCP
- protocolType=WEBSOCKET
2. db-config-dev.properties: конфигурация базы данных
#### Установочный гайд
1. Запустите `com.lizhaoblog.Main` непосредственно в IDE
1. Откройте IDE
2. Измените конфигурационные файлы (пункт выше) по вашим требованиям
3. Запустите функцию `com.lizhaoblog.Main`
4. Тестирование: запустите соответствующий метод в `com.lizhaoblog.server.channel.NettyClientTest`
- В этот момент закомментируйте строчку `targetPath` в тэге `build--resources--resource` файла `pom.xml`
2. Запуск через jar
1. Создание jar
- Используйте Maven для сборки проекта, затем запустите его с помощью командной строки. Это включает в себя создание jar-файла со всеми ресурсами и отдельное создание jar-файла с ресурсами.
- Контрольный выключатель находится в тэге `build--resources--resource` файла `pom.xml`.
- Чтобы создать jar-файл со всеми ресурсами, закомментируйте строчку `targetPath`.
- Наоборот, откройте строчку `targetPath` и закомментируйте `filtering`.
2. Запуск
- Запустите с помощью `"java -jar xxx.jar"`
- `original-all-in-one-1.0-SNAPSHOT.jar`: это наш проект, который зависит от пакета `lib` в одной директории
- `all-in-one-1.0-SNAPSHOT.jar`: это пакет, содержащий все необходимое#### Подробное описание
1. Обновление в реальном времени, адрес: Разработка Java-сервера игры, https://blog.csdn.net/cmqwan/article/details/80858272
2. Вы можете присоединиться к QQ-группе для совместного обсуждения вопросов разработки Java-сервера игры, ID группы: 676231564
#### Участие в развитии
1. Fork этого проекта
2. Создайте новую ветку `Feat_xxx`
3. Добавьте свои изменения
4. Создайте новый Pull Request
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )