PHPackages                             jxy918/swoole-game - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. jxy918/swoole-game

ActiveLibrary[Framework](/categories/framework)

jxy918/swoole-game
==================

基于swoole的H5游戏服务器开发框架

v1.0.0(6y ago)15019461PHPPHP &gt;=5.6

Since May 15Pushed 6y ago7 watchersCompare

[ Source](https://github.com/jxy918/swoole-game)[ Packagist](https://packagist.org/packages/jxy918/swoole-game)[ Docs](https://github.com/jxy918/swoole-game)[ RSS](/packages/jxy918-swoole-game/feed)WikiDiscussions master Synced today

READMEChangelog (1)DependenciesVersions (3)Used By (1)

swoole-game
===========

[](#swoole-game)

- 基于Swoole扩展开游戏服务器框架
- 框架打包后使用方法请关注：**[swoole-game-framework](https://github.com/jxy918/swoole-game-framework)**
- 基于swoft框架实现的另一版本：**[swoft-game](https://github.com/jxy918/swoft-game)**
- 想关注更多游戏开发可以关注swoft-ddz斗地主：**[swoft-ddz](https://github.com/jxy918/swoft-ddz)**

### 一，概述

[](#一概述)

- 该框架主要用于开发游戏服务器，简化游戏前后端开发，框架主要实现了前后端，封包解包，协议解析，压缩，粘包，路由等功能，代码示例为h5游戏。
- 框架比较简单, 几乎不依赖外部源码库, 方便阅读和使用。
- 基本实现框架功能, 框架组件还不完善, 自己用到什么组件可以方便集成进来。

### 二，示例图

[](#二示例图)

[![游戏demo1](images/demo1.jpg)](images/demo1.jpg)[![游戏demo2](images/demo2.jpg)](images/demo2.jpg)[![游戏demo3](images/demo3.png)](images/demo3.png)[![游戏demo4](images/demo4.jpg)](images/demo4.jpg)[![客户端交互测试工具](images/demo5.png)](images/demo5.png)

### 三，特性

[](#三特性)

- 对websocket,http,tcp协议进行封装，异步处理任务
- 实现前后端二进制封包解包，采用的是msgpack扩展，msgpack对数据进行了压缩，并实现粘包处理, 服务器加入了protobuf支付，tcp有测试例子
- 数据采用固定包头，包头4个字节存包体长度，包体前2个字节分别为cmd(主命令字)，scmd(子命令字)，后面为包体内容
- 采用策略模式解耦游戏中的每个协议逻辑
- 实现定义游戏开发cmd(主命令字)和scmd(子命令字)定义，cmd和scmd主要用来路由到游戏协议逻辑处理
- 代码里有个JokerPoker类是一个款小游戏算法类，是一个示例，如示例图1,2,3,4
- 代码主要是用框架实现小游戏JokerPoker例子，服务端代码开源，客户端代码暂不开源，但是提供客户端交互测试工具，见示例图5。
- 可以方便的把JokerPoker范例去除，只使用框架功能定制开发开发自己的游戏功能

> 备注：注意此范例数字都是默认值， 未用到存储， 运行不需要数据库，数据库配置只是测试操作数据库用

### 四，环境依赖

[](#四环境依赖)

> 需要支持高版本swoole, 环境可以自行编译, 为了方便大家使用, 可以使用根目录提供的Dockerfile文件构建环境

- php 7.1及以上
- swoole 1.9以上版本
- msgpack
- protobuf 选择使用

### 五，开始使用

[](#五开始使用)

- 1，安装swoft

```
composer install

```

- 2，目录说明：

```
./bin 服务启动目录
./core 框架服务器核心代码
./lib 公共类库代码
./app 游戏协议逻辑处理代码
./conf 相关配置目录
./log  日志目录
./client 客户端交互测试工具

```

- 3，进入bin目录，启动服务器 ：

```
./game  start   启动服务
./game  stop    关闭服务
./game  reload   服务重载， 优雅载入， 不需要启动服务， 可以载入所修改的逻辑

```

> 也可以直接用php命令行启动, 但是请确认启动之前， 杀死所有相关进程

```
php run.php

```

- 4，如果开启http服务器，其实websocket和http是同时开启的， 如果不想混在一起可以单独开启监听端口，http测试例子代码如下浏览器访问：

```
http://[ip]:[port]/HttpTest?aaa=bbb&ccc=ddd

```

- 5，如果开启了tcp服务器，测试例子在client目录下， 注意例子采用了protobuf，请安装，也可以改成msgpack，请自行修改 php执行一下就可以看到结果：

```
php tcp_client.php

```

- 6 ，H5游戏客户端代码由于公司限制，暂不开放， 但是提供了一个客户端交互测试工具，直接把client目录放入web服务器， 修改客服端配置文件配置websocket链接就能运行。

### 六，联系方式

[](#六联系方式)

- qq：251413215, 加qq请输入验证消息：swoole-game qq群:100754069

### 七，备注

[](#七备注)

- 根目录增加docker运行环境(Dockerfile)， 可以直接执行下面的命令，创建镜像php\_swoole, 环境增加php-protobuf支持

```
docker build -t php_swoole .

```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity25

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2554d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c061e99b70aa3e1b532f1195bd8493afbfacddd7e179efb749fc141074ddb531?d=identicon)[jxy918](/maintainers/jxy918)

---

Top Contributors

[![jxy918](https://avatars.githubusercontent.com/u/1694561?v=4)](https://github.com/jxy918 "jxy918 (52 commits)")

---

Tags

cocosgameh5gamejsphpswooleswoole-gameHTML5swoolegame

### Embed Badge

![Health badge](/badges/jxy918-swoole-game/health.svg)

```
[![Health](https://phpackages.com/badges/jxy918-swoole-game/health.svg)](https://phpackages.com/packages/jxy918-swoole-game)
```

###  Alternatives

[laravel/octane

Supercharge your Laravel application's performance.

4.0k21.5M159](/packages/laravel-octane)[hprose/hprose

It is a modern, lightweight, cross-language, cross-platform, object-oriented, high performance, remote dynamic communication middleware. It is not only easy to use, but powerful. You just need a little time to learn, then you can use it to easily construct cross language cross platform distributed application system.

2.1k215.3k37](/packages/hprose-hprose)[hprose/hprose-swoole

Hprose asynchronous client &amp; standalone server based on swoole

17928.9k9](/packages/hprose-hprose-swoole)[blink/blink

A high performance web framework and application server in PHP

83441.9k3](/packages/blink-blink)[hyperf/hyperf-skeleton

A coroutine framework that focuses on hyperspeed and flexible, specifically use for build microservices and middlewares.

301187.4k](/packages/hyperf-hyperf-skeleton)[fastd/fastd

The FastD High Performance API Framework

42015.2k17](/packages/fastd-fastd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
