白鹭游戏引擎网络棋牌搭建步骤
前言:
项目是一个游客登录型的棋牌联网游戏,前端是白鹭引擎,后端 PHP 开发。分为登录和获取基本信息的 Http 层和 websocket 通信的游戏层。后台需要有一个分布式网关服务器(php 游戏网关)。以下为了搭建更快捷,使用宝塔进行操作,前提已经通过宝塔安装完毕了 LNMP。
环境:
CentOS7
PHP7.3,至少要大于 5
宝塔
Nginx
步骤:
下载完源码地址的源码,解压得到以下四个目录,分别的用途见标注。
\2. EgretWing 工具导入 client 中的代码,web 整个文件夹的代码放入服务器(我是本地使用 VM 搭的 centOS 虚拟机)。
\3. 宝塔中的使用的 PHP 安装 yaf 扩展,重启 PHP 后访问查看 phpinfo()可能找不到 yaf
\4. 通过宝塔的创建网站添加 web 中的代码,使得能通过域名请求到 web 目录下的 api.php 就行。主要是三个接口,分别返回登录信息,websocket 的地址和端口,图片代理等。
\5. 代码 client 文件中的代码修改”src/scene/Login.ts”的 onLoginTouch 方法中请求网络接口为上面 web 中配置的域名,”src/Main.ts”中的 initGame 方法同样修改网络请求地址为上面 web 配置的域名。接口分别是昵称和登录 token,另一个是 websocket 地址和端口。
\6. 下载上面的 Fooking 的源代码,并将代码放入服务器中,目录结构如下。
\7. 打开服务器命令面板,cd 进入 fooking 目录(以我的为例,名字可以自定义)。然后 make 进行编译。Src 目录中多出后缀为 0 的文件,面板也会显示编译结束。
\8. 打开 fooking 目录下的 router.lua 文件。PROT 可以自行定义,确定下了这个端口,我的是 8015。就需要在 centOS 防火墙中对其放行,宝塔是直接点击安全添加 8015 进行放行。
\9. 依然是同级目录,打开 config.lua 文件,端口就是游戏中 webscket 进行连接的端口。
主要配置的有路由服务器地址(上面 router 设置的端口和地址),后端服务器列表的“BACKEND_SERVER”,以及 fastcgi params,配置标注如下。
\10. 启动 router.lua。 Cd src,然后./fooking ../router.lua
\11. 查看 php-fpm 配置文件方法,命令输入, ps -ef | grep fpm。可以看到 php-fpm 的配置文件。
\12. 找到并打开 php-fpm.conf 文件,可以看到监听的通信方法以及通信的具体地址,还有 fpm 的错误日志存放地址。宝塔 Nginx 与 fpm 默认是以 unix socket 方法,如果 fpm 修改成了 tcp,那 nginx 也要修改。
\13. 查看 fpm.conf 后与 fooking 的 config 设置完毕后,就可以开始启动 config 了。Cd fooking, 然后./fooking ../config.lua。
如果出现 Can't found available backend server, Please check BACKEND_SERVER,多是因为 config 的后端配置填的通信方式与 fpm 的不一致。其他的就是 FASTCGI_ROOT 没填对地址。
\14. 最后打开 EgretWing 导入的 client 中的源码,点击调试,弹出游戏界面,登录后正常的话就会进入游戏界面了。
Fooking 分布式游戏服务器网关结构图--
\15. 启动的 config.lua 出现“stream_socket_client(): unable to connect to tcp://127.0.0.1:9010”时,修改 server 的“config”中的 router,IP 和端口换成 router.lua 中配置启动的地址和端口。
\16. 修改 server 的 redis 中的为自己安装的地址和端口,web 的 api/api/api/include/config.inc.php,修改 redis 地址和微信公众号 APPID 等地址。
评论