开心互娱H5棋牌-Egret+Java编译服务端/10款斗牛炸金花麻将/带ThinkPHP后台源码可二开
文章摘要: 这是一套交付形态很典型的H5棋牌平台——客户端和游戏服务端是编译产物,运营后台却是完整明文源码。它走微信公众号网页授权登录,主打房卡+俱乐部的熟人局模式。下面从代码结构、技术栈、游戏清单、部署到二开空间逐项说清楚。
一、先看清楚拿到的是什么
解压后整包约 345MB,根目录很干净,就三块东西加两个数据库:egret(H5前端)、java(游戏服务端)、两个 .sql 数据库文件,外加一份 搭建教程.docx 和 yum源安装jdk.rtf。

品牌这一层套了好几皮:压缩包叫“开心互娱”,示例部署里应用顶栏显示的是“九州互娱”,而数据库 server 表里游戏描述又写着“关公棋牌”。往下扒到代码层,Java 包名是 com.vequn、PHP 入口 APP_NAME 定义为 Vequn——所以它真正的底层框架是 vequn(维群) 这套 H5 棋牌框架,上面那些名字都是运营方换皮改出来的。对二开来说,认准 vequn 这个底子就够了。
这套的交付形态是混合的,这一点直接决定了它的价值和改造难度:
组成部分 | 交付形态 | 能不能改 |
|---|---|---|
Egret H5 客户端 | 编译发布版 JS | 只能换资源皮肤 |
Java 游戏服务端 | 可执行 jar + class | 编译产物,深改难 |
ThinkPHP 运营后台/接口 | 明文 PHP 源码 | 可以直接改 |
MySQL 数据库 | 完整两套库 | 数据结构齐全 |
二、三层架构拆解
它是标准的“前端 — 游戏服务端 — 运营后台”三层分离,各跑各的,靠数据库和 WebSocket 串起来。
H5 前端(Egret 白鹭引擎)。 每款游戏在 egret 目录下占一个独立文件夹(ddz 斗地主、zjh 炸金花、shisanshui 十三水、tdouniu 斗牛……),里面是 main.min.js + resource 资源包的发布结构,没有 .ts 工程源码。也就是说前端是白鹭导出的运行版,改图片、音效、皮肤没问题,想改玩法交互逻辑就得啃压缩过的 JS,不现实。玩家进大厅点某款游戏,实际是跳到该游戏文件夹的 index.html。
游戏服务端(Java)。 这是整套的核心,一个大厅服 + 十一个游戏服,每个都是能独立跑的 jar:vequn.lobby.jar 管大厅,vequn.game.ddz.jar、vequn.game.niuniu6.jar、vequn.game.cqxzmj.jar 等各管一款游戏。大厅服通过反射加载 com/vequn 下的一百多个 class(Role、Room、MessageNet、Work 这些一看就是自研的房间/角色/消息/定时任务框架),对外开了 WebSocket 9001、TCP 9003、HTTP 9002 三个端口,H5 客户端就是连 9001 打实时通信的。

启动逻辑写在 run.sh 里,很直白——先把大厅拉起来 sleep 30,再挨个 nohup java -jar 把各游戏服起到后台;stop.sh 则按进程名批量 kill。部署路径写死的是 /www/wwwroot/java/...,一眼就是宝塔面板的 Linux 环境。
运营后台(ThinkPHP)。 这是全套里唯一给了明文源码的部分,藏在 egret/vequn 目录,是一套 ThinkPHP 的 CMS,模块划得很全:Admin(后台)、Api(前端接口)、Member、Order、Shop、Goods 都在。光 Admin/Action 一个目录就 27 个控制器,代理、支付、玩家、配置、点控一应俱全,全是可读可改的 .php。

其中 AgentAction(代理)三万多字节、PayAction(支付)三万六,还带着 .bak 备份文件,说明代理返佣和充值这块逻辑写得不算薄,二开时能直接在这上面动刀。
两套 MySQL 库分工明确。 dazhong_lobby 是游戏主库,Java 服务端连的就是它,关键表包括 player(玩家)、server(游戏服务器列表)、roomtype(房间类型)、gameRecord(战绩)、openRoomRecord(开房记录)、agent(代理)、pay(支付)、还有一张 cheat 表(点控/输赢干预)。另一套 dazhong_lobbyht 是后台运营库,表名统一 vcm_ 前缀,vcm_agent、vcm_agent_pay、vcm_config、vcm_article 一路排下来,就是 ThinkPHP 那套 CMS 的数据。
三、游戏清单
从 server 表读出来、大厅里实际挂着的一共 10 款,按类型归一下:
类型 | 游戏 | 前端目录 | 服务端 jar |
|---|---|---|---|
牛牛/斗牛 | 12人牛牛 | tdouniu | game.nn12 |
牛牛/斗牛 | 9人牛牛 | nineniu | game.niuniu9 |
牛牛/斗牛 | 6人牛牛 | sixniu | game.niuniu6 |
扑克 | 斗地主 | ddz | game.ddz |
扑克 | 12人三张牌(炸金花) | zjh | game.zjh2 |
扑克 | 三张牌(6人炸金花) | sixzjh | game.zjh6 |
扑克 | 十三水 | shisanshui | game.ssd |
扑克 | 双扣 | shuangkou | game.shuangq |
麻将 | 扣点麻将 | kdmj | game.koudianmj |
麻将 | 血战到底 | xzmj | game.cqxzmj |
除了这 10 款,代码里还留着 mingq、hjnn2up 等几个前端目录和服务端 jar,属于框架预留、示例大厅没挂上去的,想扩游戏可以从这里接。
四、玩法与功能:房卡+俱乐部的熟人局
进大厅是清一色的“创建房间”,没有金币场自由匹配——这套走的是房卡俱乐部路子,房主开局、朋友输房号进来一起打。

创建房间时不同游戏能配的参数不一样,粒度做得挺细:麻将能选普通场/风耗子场、胡牌类型、局数、首张随庄这些;斗牛能配底分、喜金、顶注、首轮必闷/不闷、比牌底分。付费模式统一是房主支付或 AA 制,消耗房卡,且注明“房费发牌后才扣除”。

加入房间是一个手动输房号的键盘面板,牌桌则是围坐式的多人桌,斗牛这类还会在桌面标出牌型倍数(同花顺、五炸弹、五花牛、葫芦牛……),人数不够会提示“人数不足,不能开始游戏”。

十三水、双扣这些走的也是同一套牌桌框架,房间号、场次、对局数都在侧边标着,房主一个“开始”键发牌。

个人中心这块该有的运营入口都有:我的开房记录、最近游戏、活动中心、联系我们,还有一个“推广中心”挂着代理加盟——配合后台的 AgentAction 和 vcm_agent 系列表,代理裂变、返佣、充值这条运营线是打通的。

登录走的是微信公众号网页授权(OAuth):index.html 里写死了公众号 AppID,Java 大厅配置里也要填 AppID/AppSecret,所以这套只能挂在认证过的微信公众号下跑 H5,这一点部署前要想清楚。
五、部署:宝塔 Linux 一条龙
搭建教程写得比较实在,环境和步骤都给全了。环境是 CentOS7 + 宝塔面板 + JDK + Nginx + PHP5.6 + MySQL5.6(JDK 单独附了一份 yum 源安装文档)。
大致流程:
1. 装宝塔、装 JDK,建 Nginx+PHP5.6+MySQL5.6 环境
2. 导入两套库 dazhong_lobby 和 dazhong_lobbyht(默认库名即账号,密码见配置文件)
3. 改 egret/index.html 里的 appid 和 redirect_uri 域名,换成自己公众号和域名
4. 改 java/lobby/config 下 server_config.properties、weChat_config.properties 的 appId/appSecret
5. 微信公众号后台配好业务域名、JS接口安全域名、网页授权域名、IP白名单
6. 改 dazhong_lobby 库 server 表的 address 字段,指向自己的域名
7. 进 java 目录执行 ./run.sh 拉起所有服务
8. 宝塔里把网站默认文档的 index.php 提前,放开 1-60000 端口
后台:http://域名/index.php?m=Public&a=login(admin)
前端:http://域名/?skin=0&platform=1
不改代码的话,数据库账号密码用默认的就能跑;会改的可以把源码里所有 DB 账号密码换成自己的。整个环境搭好、导库、改配置,熟手一两个小时能落地,真正卡时间的往往是微信公众号那几个域名认证,公众号资质不到位会一直卡在授权登录。前端地址里的 skin 和 platform 两个参数,也印证了它设计上是支持多皮肤、多平台切换的。

六、二开空间:改运营顺手,改玩法碰壁
一句话概括:运营层随便改,游戏核心改不动。
能改的部分:ThinkPHP 后台和 API 是明文源码,代理层级、返佣比例、充值、点控参数、公告活动、玩家管理这些运营向的东西,直接在 Modules 里动手就行;游戏的开关、名称、跳转靠 server 表配置,加减游戏、换域名都是改数据;前端换皮(图标、背景、音效、界面资源)也没门槛,替 resource 里的素材即可。
改不动的部分:11 款游戏的服务端是编译好的 jar,只有 class 没有 .java,虽然 class 能反编译出来读,但想改发牌逻辑、赔率、胡牌算法这类核心规则,工作量和风险都很大;Egret 客户端的游戏主逻辑压在 main.min.js 里,同样只能换资源、动不了玩法。
所以这套的定位很清楚——拿来换个皮、接上自己的公众号、把代理和点控配起来就能开运营的房卡棋牌平台;但它不适合当作“改玩法、出新游戏”的开发底座,因为最值钱的游戏逻辑源码(Java 和 Egret 工程)恰恰没给。想清楚这条边界,再决定要不要上手。
下载地址
会员免费本资源为会员专享,登录后可下载

