• 白鹭游戏引擎网络棋牌搭建步骤


    前言:

            项目是一个游客登录型的棋牌联网游戏,前端是白鹭引擎,后端PHP开发。分为登录和获取基本信息的Http层和websocket通信的游戏层。后台需要有一个分布式网关服务器(php游戏网关)。以下为了搭建更快捷,使用宝塔进行操作,前提已经通过宝塔安装完毕了LNMP。

    资源:

    源码地址:  https://gitee.com/scgywx/threecard

    作者说明:  https://my.oschina.net/scgywx/blog/757726

    Fooking地址: https://gitee.com/scgywx/fooking

    环境:

    1. CentOS7
    2. PHP7.3,至少要大于5
    3. 宝塔
    4. Nginx

    步骤:

    1. 下载完源码地址的源码,解压得到以下四个目录,分别的用途见标注。

    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,配置标注如下。

    --监听IP和端口
    HOST = "0.0.0.0";
    PORT = 9005;
    
    --守护进行
    --DAEMONIZE = 1;
    
    --日志文件(为空则不输出日志, stdout-输出到标准输出上, 其它则按文件处理)
    LOG_FILE = "stdout";--直接屏幕打印
    --LOG_FILE = "/tmp/fooking-gateway.log";--输出到文件
    
    --1: 仅error
    --2: error与info
    --3: 所有
    LOG_LEVEL = 3;
    
    --是否路由服务器(0-否, 1-是)
    --如果是路由,ROUTER以下的配置将被忽略)
    ROUTER = 0;
    
    --服务器ID
    SERVER_ID = 1;
    
    --工作进程
    WORKER_NUM = 2;
    
    --最大连接数
    MAX_CLIENT_NUM = 10000;
    
    --缓冲区大小
    MAX_BUFF_SIZE = 4096;
    
    --路由服务器
    ROUTER_HOST = "192.168.234.128";
    ROUTER_PORT = 8015;
    
    --SSL配置
    --SSL = 1
    --SSL_CERT = "/tmp/cert.pem"
    --SSL_PKEY = "/tmp/pkey.pem"
    
    --指定时间内连接没有数据包请求,将会踢掉连接(单位秒),为0不处理
    IDLE_TIME = 0;
    
    --脚本
    SCRIPT_FILE = "../scripts/Websocket.lua";
    
    --后端服务器列表
    BACKEND_CONNECT_TIMEOUT = 5;--连接超时时间(单位秒)
    BACKEND_READ_TIMEOUT = 10;--数据接收超时间(单位秒)
    BACKEND_KEEPALIVE = 10;--最大维持长连接数量
    BACKEND_SERVER = {
    	["unix:/tmp/php-cgi-73.sock"] = 5,--第一列是socket选项,第二列是权重(跟nginx的upstream差不多一个意思)
    };
    
    --新连接是否通知(0-不通知, 1-通知)
    --请求头会有EVENT=1
    EVENT_CONNECT = 0;
    
    --关闭连接是否通知(0-不通知, 1-通知)
    --请求头会有EVENT=2
    EVENT_CLOSE = 1;
    
    --fastcgi params
    FASTCGI_PREFIX = "";--go下要使用HTTP_作为前缀,否则拿不了SESSIONID和EVENT
    FASTCGI_ROOT = "/www/wwwroot/san_zhang_pai/server/";--必须以/结尾
    FASTCGI_FILE = "server.php";
    FASTCGI_PARAMS = {
    	["SERVER_SOFTWARE"] = "fooking",
    	["SERVER_PROTOCOL"] = "HTTP/1.1",
    	["GATEWAY_INTERFACE"] = "CGI/1.1",
    	["REQUEST_METHOD"] = "POST",
    	["SCRIPT_FILENAME"] = FASTCGI_ROOT..FASTCGI_FILE,
    	["SCRIPT_NAME"] = FASTCGI_FILE,
    	["DOCUMENT_ROOT"] = FASTCGI_ROOT,
    	["SERVER_NAME"] = "server.yafgame.com/",
    	["QUERY_STRING"] = "a=10&b=20",
    };
    

    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等地址。

  • 相关阅读:
    判断ascii码是什么的函数
    php curl
    js form settimeout
    windows php文件下载地址
    面试(3)
    [读码时间] 显示单击的坐标
    [读码时间] 模拟select控件
    [读码时间] 星级评分
    [读码时间] 事件练习:封闭兼容性添加,删除事件的函数
    [读码时间] 数组方法的使用
  • 原文地址:https://www.cnblogs.com/zerofc/p/14155411.html
Copyright © 2020-2023  润新知