1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/jxy918-swoole-game

В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

swoole-game

  • Основан на расширении Swoole для создания игрового серверного фреймворка
  • Другая версия, основанная на фреймворке Swoft: swoft-game

1. Обзор

  • Этот фреймворк主要用于开发游戏服务器,简化游戏前后端开发,框架主要实现了前后端,封包解包,协议解析,压缩,粘包,路由等功能,代码示例为h5游戏.
  • Фреймворк достаточно прост, почти не зависит от внешних библиотек, что облегчает его чтение и использование.
  • Основные функции фреймворка реализованы, но компоненты фреймворка еще не полностью развиты, можно легко интегрировать необходимые компоненты.

2. Примеры

Игровой демонстрационный пример 1 Игровой демонстрационный пример 2 Игровой демонстрационный пример 3 Игровой демонстрационный пример 4 Инструмент для тестирования взаимодействия с клиентом

3. Особенности

  • Обертка для протоколов WebSocket, HTTP и TCP с асинхронной обработкой задач
  • Реализация бинарной упаковки и распаковки данных на стороне клиента и сервера с использованием расширения msgpack, которое сжимает данные и обрабатывает стикинг пакетов. Сервер поддерживает protobuf, есть примеры тестирования для TCP
  • Данные используют фиксированную заголовочную структуру, где первые 4 байта содержат длину пакета, следующие 2 байта — основную команду (cmd) и подкоманду (scmd), а затем идет содержимое пакета
  • Использование паттерна стратегии для декуплинга логики каждого протокола в игре
  • Определение основных команд (cmd) и подкоманд (scmd) для маршрутизации к логике обработки игровых протоколов
  • В коде есть класс JokerPoker, который представляет собой алгоритм для мини-игры, как показано на примерах 1, 2, 3 и 4
  • Код в основном реализует пример мини-игры JokerPoker с использованием фреймворка. Исходный код сервера открыт, но исходный код клиента пока не открыт. Однако предоставляется инструмент для тестирования взаимодействия с клиентом, как показано на примере 5
  • Можно легко удалить пример JokerPoker и использовать функции фреймворка для разработки собственных игровых функций

Примечание: все числовые значения в этом примере являются значениями по умолчанию и не используются для хранения. Для работы не требуется база данных, конфигурация базы данных используется только для тестирования операций с базой данных.

4. Зависимости среды

Требуется поддержка высоких версий Swoole. Среду можно скомпилировать самостоятельно. Для удобства использования можно использовать файл Dockerfile в корневом каталоге для создания среды.

  • PHP 7.1 и выше
  • Swoole 1.9 и выше
  • Msgpack
  • Protobuf (по желанию)

5. Начало работы

    1. Установка Swoft
composer install
    1. Описание каталогов:
./bin — каталог для запуска службы
./core — ядро серверного кода фреймворка
./lib — код общих библиотек
./app — код для обработки логики игровых протоколов
./conf — каталог с конфигурациями
./log — каталог с логами
./client — инструмент для тестирования взаимодействия с клиентом
    1. Перейдите в каталог bin и запустите сервер:
./game start — запуск службы
./game stop — остановка службы
./game reload — перезагрузка службы, грациозная загрузка изменений без необходимости перезапуска службы

Также можно запустить сервер с помощью командной строки PHP, но перед этим убедитесь, что все связанные процессы завершены.

php run.php
    1. Если включен HTTP-сервер, то WebSocket и HTTP запускаются одновременно. Если вы хотите запускать их отдельно, можно настроить отдельные порты для прослушивания. Пример кода для тестирования HTTP-запросов в браузере:
http://[ip]:[port]/HttpTest?aaa=bbb&ccc=ddd
    1. Если включен TCP-сервер, пример тестирования находится в каталоге client. Обратите внимание, что пример использует protobuf, поэтому его нужно установить. Также можно изменить на msgpack по своему усмотрению. Выполнение следующей команды PHP покажет результат:
php tcp_client.php
    1. Исходный код H5-клиента игры из-за ограничений компании временно недоступен, но предоставляется инструмент для тестирования взаимодействия с клиентом. Просто поместите каталог client на веб-сервер и измените конфигурацию клиента для подключения к WebSocket.

6. Контакты

  • QQ: 251413215, при добавлении в QQ укажите сообщение для проверки: swoole-game

7. Примечания

  • В корневом каталоге добавлен файл Dockerfile для создания среды выполнения (Dockerfile), можно выполнить следующую команду для создания образа php_swoole с поддержкой php-protobuf.
docker build -t php_swoole .

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Рамка для разработки сервера игр на основе расширения Swoole, пример реализации разработки игр для HTML5 Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/jxy918-swoole-game.git
git@api.gitlife.ru:oschina-mirror/jxy918-swoole-game.git
oschina-mirror
jxy918-swoole-game
jxy918-swoole-game
master