<?php
namespace app\http;

use GatewayWorker\Lib\Gateway;
use Workerman\Worker;
use think\worker\Application;
/**
 * gateway Worker 命令行服务类
* php think worker:gateway
 */
class Gateway
{
/**
 * 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";
}
}
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐