12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: liu21st <liu21st@gmail.com>
- // +----------------------------------------------------------------------
- namespace think\worker;
- use Workerman\Worker;
- /**
- * Worker控制器扩展类
- */
- abstract class Server
- {
- protected $worker;
- protected $socket = '';
- protected $protocol = 'http';
- protected $host = '0.0.0.0';
- protected $port = '2346';
- protected $processes = 4;
- /**
- * 架构函数
- * @access public
- */
- public function __construct()
- {
- // 实例化 Websocket 服务
- $this->worker = new Worker($this->socket ?: $this->protocol . '://' . $this->host . ':' . $this->port);
- // 设置进程数
- $this->worker->count = $this->processes;
- // 初始化
- $this->init();
- // 设置回调
- foreach (['onWorkerStart', 'onConnect', 'onMessage', 'onClose', 'onError', 'onBufferFull', 'onBufferDrain', 'onWorkerStop', 'onWorkerReload'] as $event) {
- if (method_exists($this, $event)) {
- $this->worker->$event = [$this, $event];
- }
- }
- // Run worker
- Worker::runAll();
- }
- protected function init()
- {
- }
- }
|