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.
97 lines
2.7 KiB
97 lines
2.7 KiB
<?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";
|
|
}
|
|
}
|
|
|