示例#1
0
 /**
  * 接受到一个Tcp客户端发来的数据时触发
  *
  * @param \swoole_server $server  当前进程的swoole_server对象
  * @param int            $fd      当前连接的文件描述符(惟一)
  * @param int            $from_id 当前连接的Rector线程
  * @param string         $data    接收到的数据(如果没有设置包头\拆包协议,可能收到的数据会不完整或者黏包)
  */
 public function OnReceive(\swoole_server $server, $fd, $from_id, $data)
 {
     /** @var IRequest $request */
     $request = RequestFactory::Make($fd, $from_id, $data);
     Event::Listen('OnRequest', [&$server, &$request]);
     Dispatcher::Dispatch($request);
 }
示例#2
0
 public function Bind()
 {
     Event::Add('OnTaskReceived', [$this, 'OnTaskReceived']);
     Event::Add("OnTaskFinished", [$this, 'OnTaskFinished']);
     Event::Add('OnFinish', [$this, 'OnFinish']);
     Event::Add('OnTaskSent', [$this, 'OnTaskSent']);
     Event::Add('OnRequest', [$this, 'OnRequest']);
 }
示例#3
0
 /**
  * TaskWorker收到任务时触发
  *
  * @param \swoole_server $server
  * @param int            $task_id
  * @param int            $from_id
  * @param mixed          $param
  */
 public function OnTask(\swoole_server $server, $task_id, $from_id, $param)
 {
     //Log::Debug("Task accept task_id[$task_id]  from_id[$from_id]");
     Event::Listen('TaskReceived', [&$server, &$task_id, &$from_id, &$param]);
     //if($server->worker_id % 2 == 0)
     //{
     //	sleep(2);
     //	if(rand(0, 100) > 50)
     //	{
     //		//return;
     //	}
     //}
     Event::Listen('TaskFinished', [&$server, &$task_id, &$from_id, &$param]);
     $server->finish('finish');
 }
示例#4
0
 public function OnManagerStop(\swoole_server $server)
 {
     Event::Listen('OnManagerStop', [&$server]);
     $this->managerServer->OnManagerStop($server);
 }
示例#5
0
文件: Server.php 项目: szyhf/DIServer
 public static function TaskWait($data, $timeout = 0.5, $taskWorkerID = -1)
 {
     /** @var \swoole_server $instance */
     $instance = self::getFacadeRoot();
     Event::Listen('TaskWaitWillSend', [$data, $timeout, $taskWorkerID]);
     return $instance->taskwait($data);
 }
示例#6
0
 /**
  * Task一次工作结束以后,在Worker进程中被触发(如果在Task中执行了Finish方法)
  *
  * @param \swoole_server $server     当前进程的swoole_server对象
  * @param int            $task_id    结束工作的Task的ID
  * @param mixed          $taskResult 在OnTask方法中被Return的数据。
  */
 public function OnFinish(\swoole_server $server, $task_id, $taskResult)
 {
     Event::Listen('OnFinish', [&$server, &$task_id, &$taskResult]);
 }
示例#7
0
 public function Bind()
 {
     Event::Add(['OnClose'], [$this, '']);
 }
示例#8
0
 /**
  * 启动应用程序
  */
 public function Start()
 {
     static::SetInstance($this);
     $this->bindBaseClass();
     $this->AutoRegistry("Application.php");
     $this->bindCoreAliases();
     Event::Add('OnMasterStart', [$this, 'RecordPID']);
     Bootstrapper::Boot();
 }