You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.7 KiB
98 lines
2.7 KiB
11 months ago
|
<?php
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||
|
// +----------------------------------------------------------------------
|
||
|
// | Author: liu21st <liu21st@gmail.com>
|
||
|
// +----------------------------------------------------------------------
|
||
|
namespace think\worker;
|
||
|
|
||
|
use GatewayWorker\Lib\Gateway;
|
||
|
use Workerman\Worker;
|
||
|
|
||
|
/**
|
||
|
* Worker 命令行服务类
|
||
|
*/
|
||
|
class Events
|
||
|
{
|
||
|
/**
|
||
|
* onWorkerStart 事件回调
|
||
|
* 当businessWorker进程启动时触发。每个进程生命周期内都只会触发一次
|
||
|
*
|
||
|
* @access public
|
||
|
* @param \Workerman\Worker $businessWorker
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onWorkerStart(Worker $businessWorker)
|
||
|
{
|
||
|
$app = new Application;
|
||
|
$app->initialize();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* onConnect 事件回调
|
||
|
* 当客户端连接上gateway进程时(TCP三次握手完毕时)触发
|
||
|
*
|
||
|
* @access public
|
||
|
* @param int $client_id
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onConnect($client_id)
|
||
|
{
|
||
|
Gateway::sendToCurrentClient("Your client_id is $client_id");
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* onWebSocketConnect 事件回调
|
||
|
* 当客户端连接上gateway完成websocket握手时触发
|
||
|
*
|
||
|
* @param integer $client_id 断开连接的客户端client_id
|
||
|
* @param mixed $data
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onWebSocketConnect($client_id, $data)
|
||
|
{
|
||
|
var_export($data);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* onMessage 事件回调
|
||
|
* 当客户端发来数据(Gateway进程收到数据)后触发
|
||
|
*
|
||
|
* @access public
|
||
|
* @param int $client_id
|
||
|
* @param mixed $data
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onMessage($client_id, $data)
|
||
|
{
|
||
|
Gateway::sendToAll($data);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* onClose 事件回调 当用户断开连接时触发的方法
|
||
|
*
|
||
|
* @param integer $client_id 断开连接的客户端client_id
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onClose($client_id)
|
||
|
{
|
||
|
GateWay::sendToAll("client[$client_id] logout\n");
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* onWorkerStop 事件回调
|
||
|
* 当businessWorker进程退出时触发。每个进程生命周期内都只会触发一次。
|
||
|
*
|
||
|
* @param \Workerman\Worker $businessWorker
|
||
|
* @return void
|
||
|
*/
|
||
|
public static function onWorkerStop(Worker $businessWorker)
|
||
|
{
|
||
|
echo "WorkerStop\n";
|
||
|
}
|
||
|
}
|