多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 官方文档: https://www.workerman.net/doc/gateway-worker/gateway.html # Gateway BusinessWorker Register 三个要一起用并且一起启动才可以 # ![](https://img.kancloud.cn/d0/05/d005a6c25b39b952e4010181cafb9c77_1285x902.png) ## 1、 协议 和Worker一样,在初始化Gateway对象时设置Gateway的协议,例如下面设置Gateway的通讯协议为websocket ~~~php use \GatewayWorker\Gateway; require_once './Workerman/Autoloader.php'; // 指定websocket协议 $gateway = new Gateway("websocket://0.0.0.0:8585"); ... ~~~ ## 2、name 和Worker一样,可以设置Gateway进程的名称,方便status命令中查看统计 ## 3、count 和Worker一样,可以设置Gateway进程的数量,以便充分利用多cpu资源 ## 4、lanIp lanIp是Gateway所在服务器的内网IP,默认填写127.0.0.1即可。[多服务器分布式部署](https://www.workerman.net/doc/gateway-worker/how-distributed.html)的时候需要填写真实的内网ip,不能填写127.0.0.1。注意:lanIp只能填写真实ip,不能填写域名或者其它字符串,无论如何都不能写0.0.0.0 . ## 5、startPort Gateway进程启动后会监听一个本机端口,用来给BusinessWorker提供链接服务,然后Gateway与BusinessWorker之间就通过这个连接通讯。这里设置的是Gateway监听本机端口的起始端口。比如启动了4个Gateway进程,startPort为2000,则每个Gateway进程分别启动的本地端口**一般**为2000、2001、2002、2003。 当本机有多个Gateway/BusinessWorker项目时,需要把每个项目的startPort设置成不同的段 ## 6、registerAddress, 注册服务地址,只写格式类似于 '127.0.0.1:1236' ## 7、心跳设置,具体说明见心跳一节 ## 8、onWorkerStart 和Worker一样,可以设置Gateway进程启动后的回调函数,一般在这个回调里面初始化一些全局数据 ## 9、onWorkerStop 和Worker一样,可以设置Gateway进程关闭的回调函数,一般在这个回调里面做数据清理或者保存数据工作 ## 10、onConnect(比较少用到,开发者一般不用关注) 和Worker一样,可以设置onConnect回调,当有客户端连接上来时触发。与Events::onConnect的区别是Events::onConnect运行在BusinessWorker进程上。Gateway::onConnect是运行在Gateway进程上,无法使用\\GatewayWorker\\Lib\\Gateway类提供的接口 ## 11、onClose(比较少用到,开发者一般不用关注) 和Worker一样,可以设置onClose回调,当有客户端连接关闭时触发。同样与Events::onClose的区别是Gateway::onClose是运行在Gateway进程上,无法使用\\GatewayWorker\\Lib\\Gateway类提供的接口 # 使用案例: ~~~ <?php require_once 'vendor/autoload.php'; use Workerman\Worker; use GatewayWorker\Gateway; $gate= new Gateway('text://0.0.0.0:1111'); Worker::runAll(); ~~~