Download the PHP package pfinalclub/asyncio-gamekit without Composer
On this page you can find all versions of the php package pfinalclub/asyncio-gamekit. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package asyncio-gamekit
pfinal-asyncio-gamekit
基于 pfinal-asyncio 的轻量级异步游戏逻辑框架
一个面向 Workerman + pfinal-asyncio 的异步游戏框架,让你用 async/await 编排游戏逻辑,就像写故事剧本一样。
✨ 特性
核心功能
- 🎮 Room 基类 - 带完整生命周期钩子的异步房间管理
- 👥 Player 通信封装 - 简单易用的玩家消息收发
- 📢 异步广播机制 - 支持即时和延迟广播
- ⏰ 定时事件系统 - 灵活的定时器和延迟任务
- 🔄 房间生命周期 - onCreate、onStart、run、onDestroy 完整钩子
- 🎯 RoomManager - 多房间管理和快速匹配
- 🌐 GameServer - 开箱即用的 WebSocket 游戏服务器
高级功能 🆕
- 🧪 单元测试 - 完整的 PHPUnit 测试框架
- 🚨 异常处理 - 结构化异常系统,带上下文信息
- 📝 日志系统 - 多级别日志,支持控制台和文件输出
- 💾 状态持久化 - 支持 Redis、文件等多种存储方式
- ⚖️ 负载均衡 - 多进程房间分配,支持轮询、最少连接等策略
框架定位
专为 小型多人游戏 和 实时对战游戏 设计,适用于:
- 🃏 卡牌游戏
- 🎲 棋牌游戏
- 🎯 答题游戏
- 🏁 实时对战游戏
- 🎮 回合制游戏
📦 安装
📋 要求
- PHP >= 8.1
- pfinalclub/asyncio >= 3.0
- workerman/workerman >= 4.1 或 >= 5.0
注意: 如果您的项目已安装
workerman/workerman v5.x,请确保pfinalclub/asyncio也支持 Workerman v5。如果遇到依赖冲突,请使用composer require pfinalclub/asyncio-gamekit --with-all-dependencies安装。
🚀 快速开始
1. 创建你的第一个游戏房间
2. 完整的 WebSocket 游戏服务器
客户端连接:
📚 核心 API
Room 类
房间是游戏逻辑的核心容器,提供完整的生命周期管理。
配置选项
生命周期钩子
常用方法
Player 类
封装玩家通信和状态管理。
RoomManager 类
管理多个游戏房间。
GameServer 类
WebSocket 游戏服务器。
内置系统事件
客户端可以发送以下系统事件:
| 事件 | 说明 | 数据 |
|---|---|---|
set_name |
设置玩家名称 | {name: "PlayerName"} |
create_room |
创建房间 | {room_class: "ClassName", config: {...}} |
join_room |
加入房间 | {room_id: "room_id"} |
leave_room |
离开房间 | {} |
quick_match |
快速匹配 | {room_class: "ClassName", config: {...}} |
get_rooms |
获取房间列表 | {} |
get_stats |
获取统计信息 | {} |
🎯 示例
示例 1:简单倒计时游戏
运行:
示例 2:卡牌游戏
运行:
示例 3:WebSocket 猜数字游戏
启动服务器:
然后在浏览器中打开 examples/client.html 连接游戏服务器。
示例 4:高级游戏(新特性展示)🆕
展示日志、异常处理、持久化等新特性:
🆕 新特性使用
日志系统
异常处理
状态持久化
负载均衡
单元测试
🏗️ 高级用法
自定义定时任务
异步任务编排
超时控制
房间间通信
🎮 完整游戏示例
查看 examples/ 目录了解更多完整示例:
- SimpleGame.php - 简单的倒计时游戏
- CardGame.php - 回合制卡牌游戏
- WebSocketServer.php - 完整的 WebSocket 游戏服务器
- AdvancedGame.php 🆕 - 展示新特性的高级示例
- client.html - 网页游戏客户端
🔧 配置建议
生产环境配置
调试模式
📚 文档
用户文档
- API 文档 - 完整的 API 参考
- 使用指南 - 详细的使用教程
- 改进说明 🆕 - 新特性详解
- 安装说明 - 安装和配置
运维文档
- 生产部署 🆕 - 生产环境部署指南
- 测试指南 🆕 - 单元测试最佳实践
项目文档
- 项目结构 - 代码组织说明
- 更新日志 - 版本历史
- 贡献指南 - 如何参与贡献
📖 与 Python asyncio 对比
| 功能 | Python asyncio | pfinal-asyncio-gamekit |
|---|---|---|
| 协程定义 | async def |
function(): mixed |
| 等待协程 | await expr |
await(expr) |
| 睡眠 | await asyncio.sleep(1) |
sleep(1) |
| 并发任务 | asyncio.gather() |
gather() |
| 创建任务 | asyncio.create_task() |
create_task(fn()) |
| 事件循环 | asyncio.run() |
run() |
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT License
🔗 相关链接
- pfinal-asyncio - 底层异步框架
- Workerman - PHP 异步框架
- Python asyncio - 参考设计
💡 示例截图
WebSocket 客户端示例:
🎓 教程
更多教程和文档正在编写中...
Made with ❤️ by PFinal Club
All versions of asyncio-gamekit with dependencies
pfinalclub/asyncio Version ^3.0.0
workerman/gateway-worker Version ^3.0
workerman/channel Version ^1.1
workerman/workerman Version ^4.1|^5.0