前言:

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

环境:

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

白鹭游戏引擎网络棋牌搭建步骤相关推荐

  1. 白鹭游戏引擎html5,Egret Engine(白鹭引擎)V2.5.6 官方版

    Egret Engine(白鹭引擎)是一款免费开源的HTML5游戏引擎,使用Egret Engine可以快速开发基于HTML5的网页游戏,您不仅可以体验到开源免费游戏引擎产品,同时还能通过Egret相 ...

  2. 什么是 游戏引擎 ?各个主流引擎的区别

    在之前的元宇宙中有提及到游戏主播这个行业,那对应的就会有游戏开发者,对于开发最快捷的方式当然是使用游戏引擎进行开发了呀,那接下来我们就来说说这方面的内容吧 ! 本篇文章主要讲解,游戏开发中常用的5个游 ...

  3. 小游戏引擎选型参考指南

    写在前面 前面写了几期有关于小游戏的文章,主要从小游戏开发.小游戏运营.小游戏变现等多个角度进行了较为粗略的介绍,很多同学表示对小游戏引擎部分很感兴趣,希望能够有一些更为深入的分析介绍.今天就对目前主 ...

  4. 5款常用的html5游戏引擎以及优缺点分析

    如果您是游戏开发人员,并且正在寻找JavaScript和html5无缝协作的游戏引擎. 虽然市场上有很多免费和付费的游戏引擎,但一款让专业游戏开发者满意的游戏引擎,必须包含独特的东西,所以游戏开发者对 ...

  5. 目前主流游戏引擎的分析报告

    前言 游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是20 ...

  6. 小程序游戏开发有哪些游戏引擎可以选择?

    小游戏与小游戏引擎的关系 小游戏现在囊括的范围包括微信小游戏.QQ 空间小游戏.QQ 玩一玩(厘米游戏).Facebook Instant Games.各手机厂商的快应用小游戏,他们都在尝试着将社交场 ...

  7. 从零开始手敲次时代游戏引擎(目录)

    原文链接:https://zhuanlan.zhihu.com/c_119702958 目录 1.从零开始手敲次世代游戏引擎(序) 2.从零开始手敲次世代游戏引擎(HelloEngine) 3.从零开 ...

  8. 各大知名游戏引擎分析报告

    游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年 ...

  9. 杂谈各大游戏引擎优缺点

    游戏引擎之争就像编程语言之争一样,在游戏开发圈永远是一个火爆的话题,目前市面上主流的一些游戏引擎,我们来给他们做一些比较,了解他们的历史,特点, 为了严谨,备注一下写这个文章的时间编写时间是2021年 ...

  10. html 游戏引擎 白鹭,HTML5游戏性能大幅提升 白鹭Egret Engine 1.5震撼发布

    近日,白鹭时代发布了***一代的Egret Engine 1.5移动游戏引擎,其中备受行业关注的全新物理系统与WebSocket,随着新版引擎的发布与开发者见面.全新的Egret Engine 1.5 ...

最新文章

  1. golang mac 环境变量_macOS 配置 golang 运行环境
  2. python程序开发总结_python开发总结
  3. 三星Galaxy S10系列外观配置爆料:多种颜色可选
  4. git reset --mixed, - soft和--hard有什么区别?
  5. 使命召唤ol显示服务器超时,使命召唤ol网络延迟高的完整解决方案
  6. 智能车制作——从元器件、机电系统、控制算法到完整的智能车设计|文末赠书
  7. 引流脚本是什么意思,比邻引流脚本何如多开?
  8. python大数据工程师招聘_大数据工程师是做什么的为什么招聘网上薪资都好高啊?...
  9. 汽车vin码识别简述
  10. 单片机人体感应灯c语言,红外人体感应灯单片机方案
  11. 美团面试——餐饮系统开发
  12. python二级准备一个月能行吗_计算机二级选哪个?一个多月的准备时间够吗?
  13. 【红日靶场系列】ATTCK红队评估3
  14. 第一组生活日历软件的应用体验
  15. win7 x64环境下载、安装、配置jdk-7u7
  16. 【Python】编写代码对网络上的ip地址进行端口扫描,收集“ip+开放端口”信息
  17. 腾讯35级员工高调离职,真实工资被曝光,牛逼的人果然都很会赚钱!
  18. linux下看网卡版本,Linux下查看网卡驱动和版本信息
  19. DSP- 6678--------- 多核DSP图像处理(1)系统整体结构
  20. Cocos Creator | 飞刀大乱斗开发教程系列(一)!

热门文章

  1. CMD命令提示符大全
  2. 火车头伪原创php-火车头采集伪原创插件
  3. 如何用30分钟快速优化家中Wi-Fi?阿里工程师有绝招
  4. IIS EXPRESS无法启动
  5. 风尚云网学习-关于学习和前端
  6. 单片机节日彩灯c语言,单片机节日彩灯控制器的设计Proteus仿真
  7. 读书笔记——晶体管电路设计
  8. matlab plot3 宽度,matlab设置plot图像尺寸大小、坐标轴等
  9. 【STM32F407的DSP教程】第2章 Matlab R2018a的安装
  10. php 快递打印设置,京麦工作台打印机设置 快递单连打设置