/** * {@inheritdoc} */ public function start(ServerContextInterface $context, RequestHandlerInterface $requestHandler) { $this->server = new \swoole_http_server($context->getListenAddress(), $context->getListenPort(), \SWOOLE_BASE); if (null !== $this->serverOptions) { $this->server->set($this->serverOptions->getOptions()); } $this->server->on('request', $this->createRequestHandler($requestHandler)); $this->server->start(); }
public function __construct() { // 创建swoole_http_server对象 $http = new swoole_http_server("0.0.0.0", 9501); // 设置参数 $http->set(array('worker_num' => 16, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->setGlobal(HTTP_GLOBAL_ALL); // 绑定WorkerStart $http->on('WorkerStart', array($this, 'onWorkerStart')); // 绑定request $http->on('request', function ($request, $response) { ob_start(); try { //注入uri $_GET['_url'] = $request->server['request_uri']; $application = new \Phalcon\Mvc\Application($this->di); echo $application->handle()->getContent(); } catch (Exception $e) { echo $e->getMessage(); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
/** * * @param string $host * @param int $port * @param array $config */ public function start() { $server = new \swoole_http_server($this->host, $this->port); $server->set($this->config); $server->on('Request', array($this, 'onRequest')); $server->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 16, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('Request', array($this, 'onRequest')); $http->start(); }
public function start($host, $port) { $controller = $this->controller; $http = new \swoole_http_server($host, $port, SWOOLE_BASE); $http->on('request', array($this, 'onRequest')); $http->set(['worker_num' => 2]); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 8059); $http->set(array('worker_num' => 1, 'daemonize' => false, 'max_request' => 5000, 'user' => 'apache', 'group' => 'apache')); $http->on('Start', array($this, 'onStart')); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('Request', array($this, 'onRequest')); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 16, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 1)); define('APPLICATION_PATH', dirname(dirname(__DIR__)) . "/application"); $this->application = new Yaf_Application(dirname(APPLICATION_PATH) . "/conf/application.ini"); $this->application->bootstrap(); $http->on('Request', array($this, 'onRequest')); $http->start(); }
/** * run server */ public function run() { $this->app['Swoole'] = $this->server; echo "server started on http://{$this->app['Config']['server.hostname']}:{$this->app['Config']['server.port']}" . PHP_EOL; echo swoole_version() . PHP_EOL; /** * start swoole http server */ $this->server->start(); }
/** * 初始化 */ private function __construct($ip, $port) { register_shutdown_function(array($this, 'handleFatal')); $http = new \swoole_http_server($ip, $port); $http->set(\Config\Server::getWebServerConfig()); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', array($this, 'onRequest')); $http->on('start', array($this, 'onStart')); $http->start(); }
/** * 初始化 */ private function __construct() { register_shutdown_function(array($this, 'handleFatal')); $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 12, 'daemonize' => false, 'max_request' => 128, 'dispatch_mode' => 1, 'log_file' => '/home/bweb/logs/swoole.log', 'open_tcp_nodelay' => true)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', array($this, 'onRequest')); $http->on('start', array($this, 'onStart')); self::getYii(); $http->start(); }
/** * 初始化 */ private function __construct() { define('CISWOOLE', TRUE); register_shutdown_function(array($this, 'handleFatal')); $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 8, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', array($this, 'onRequest')); $http->on('start', array($this, 'onStart')); $http->start(); }
protected function execute(InputInterface $input, OutputInterface $output) { $kernel = $this->getContainer()->get('kernel'); $http = new \swoole_http_server($input->getOption('host'), $input->getOption('port')); $http->on('request', function ($req, $res) use($kernel, $http) { $symfonyRequest = Request::createSymfonyRequest($req); $symfonyResponse = $kernel->handle($symfonyRequest); Response::send($res, $symfonyResponse); $kernel->terminate($symfonyRequest, $symfonyResponse); }); $http->start(); }
public function __construct() { // 创建swoole_http_server对象 $http = new swoole_http_server("0.0.0.0", 9502); // 设置参数 $http->set(array('worker_num' => 16, 'daemonize' => false, 'max_request' => 100000, 'dispatch_mode' => 1)); $http->setGlobal(HTTP_GLOBAL_ALL); // 绑定WorkerStart $http->on('WorkerStart', array($this, 'onWorkerStart')); // 绑定request $http->on('request', array($this, 'onRequest')); //开启服务器 $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 50, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 16)); $http->setGlobal(HTTP_GLOBAL_ALL); $http->on('Start', function () { if (function_exists('cli_set_process_title')) { cli_set_process_title('app_server'); } else { if (function_exists('swoole_set_process_name')) { swoole_set_process_name('app_server'); } } }); $http->on('Request', array($this, 'onRequest')); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 8, 'daemonize' => false, 'max_request' => 1000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { HttpServer::$header = $request->header; } if (isset($request->get)) { HttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { HttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } if (isset($request->request_uri)) { $_SERVER['REQUEST_URI'] = $request->request_uri; } ob_start(); //实例化ycf对象 try { Ycf\Core\YcfCore::run(); } catch (Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); unset($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("127.0.0.1", 9501); $http->set(array('worker_num' => 16, 'daemonize' => true, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } // TODO handle img ob_start(); try { $yaf_request = new Yaf\Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); // unset(Yaf_Application::app()); } catch (Yaf_Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); // add Header // add cookies // set status $response->end($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 10, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { HttpServer::$header = $request->header; } if (isset($request->get)) { HttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { HttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } ob_start(); //实例化yii对象 try { $this->application = Yii::createWebApplication(FRAMEWORK_CONFIG); $this->application->run(); } catch (Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); unset($result); unset($this->application); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 16, 'daemonize' => false, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { SwooleHttpServer::$server = $request->server; foreach ($request->server as $key => $value) { $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { SwooleHttpServer::$header = $request->header; } if (isset($request->get)) { SwooleHttpServer::$get = $request->get; foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } if (isset($request->post)) { SwooleHttpServer::$post = $request->post; foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } /* $uri = explode( "?", $_SERVER['REQUEST_URI'] ); $_SERVER["PATH_INFO"] = $uri[0]; if (isset($uri[1])) { $_SERVER['QUERY_STRING'] = $uri[1]; }*/ $_SERVER['argv'][1] = $_SERVER["PATH_INFO"]; ob_start(); require_once '../../../ThinkPHP/ThinkPHP.php'; $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
public function run() { if (isset($this->on['workerstart'])) { $this->workerstart = $this->on['workerstart']; } $serv = new swoole_http_server(SWOOLE_HOST, SWOOLE_PORT); $serv->set($this->set); $this->on['start'] = array($this, 'onStart'); //避免onStart被重写 $this->on['request'] = array($this, 'onRequest'); //避免Request被重写 $this->on['shutdown'] = array($this, 'onShutdown'); //避免Shutdown被重写 $this->on['workerstart'] = array($this, 'onWorkerStart'); //避免Workerstart被重写 foreach ($this->on as $k => $v) { $serv->on($k, $v); } $serv->start(); }
public function __construct() { $http = new swoole_http_server('0.0.0.0', 9502); $http->set(array('worker_num' => 4, 'daemonize' => 0, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } ob_start(); try { $yaf_request = new Yaf_Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); } catch (Yaf_Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
public function __construct() { $http = new swoole_http_server("0.0.0.0", 9501); $http->set(array('worker_num' => 16, 'daemonize' => 0, 'max_request' => 10000, 'dispatch_mode' => 1)); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { foreach ($request->server as $key => $value) { unset($_SERVER[strtoupper($key)]); $_SERVER[strtoupper($key)] = $value; } } if (isset($request->header)) { foreach ($request->header as $key => $value) { unset($_SERVER[strtoupper($key)]); $_SERVER[strtoupper($key)] = $value; } } unset($_GET); if (isset($request->get)) { foreach ($request->get as $key => $value) { $_GET[$key] = $value; } } unset($_POST); if (isset($request->post)) { foreach ($request->post as $key => $value) { $_POST[$key] = $value; } } unset($_COOKIE); if (isset($request->cookie)) { foreach ($request->cookie as $key => $value) { $_COOKIE[$key] = $value; } } unset($_FILES); if (isset($request->files)) { foreach ($request->files as $key => $value) { $_FILES[$key] = $value; } } /* $uri = explode( "?", $_SERVER['REQUEST_URI'] ); $_SERVER["PATH_INFO"] = $uri[0]; if( isset( $uri[1] ) ) { $_SERVER['QUERY_STRING'] = $uri[1]; }*/ $_SERVER["PATH_INFO"] = explode('/', $_SERVER["PATH_INFO"], 3)[2]; $_SERVER['argv'][1] = $_SERVER["PATH_INFO"]; ob_start(); // 记录加载文件时间 G('loadTime'); // 运行应用 \Think\App::run(); $result = ob_get_contents(); ob_end_clean(); $response->end($result); }); $http->start(); }
require "{$classpath}"; return; } })); }); $serv->on('Request', function ($request, $response) { $path_info = explode('/', $request->server['path_info']); if (isset($path_info[1]) && !empty($path_info[1])) { // ctrl $ctrl = 'ctrl\\' . $path_info[1]; } else { $ctrl = 'ctrl\\Index'; } if (isset($path_info[2])) { // method $action = $path_info[2]; } else { $action = 'index'; } $result = "Ctrl not found"; if (class_exists($ctrl)) { $class = new $ctrl(); $result = "Action not found"; if (method_exists($class, $action)) { $result = $class->{$action}($request); } } $response->end($result); }); $serv->start();
function runHttpServer($host = '0.0.0.0', $port = 9501, $config = array()) { define('SWOOLE_SERVER', true); $this->ext_http_server = $this->http = new Swoole\Http\ExtServer(); $server = new swoole_http_server($host, $port); $server->set($config); if (!empty($config['document_root'])) { $this->ext_http_server->document_root = trim($config['document_root']); } $server->on('Request', array($this->http, 'onRequest')); $server->start(); }
<?php /** * HTTP Server. */ $httpServer = new swoole_http_server('127.0.0.1', 80); $htmlFile = file_get_contents('http.html'); $httpServer->on('request', function ($request, $response) use($htmlFile) { $response->header('Content-Type', 'text/html; charset=utf-8'); $response->end($htmlFile); }); $httpServer->start();
public function start() { $this->server->start(); }
public function actionRun($hostinfo = '0.0.0.0:9580') { $this->parseHostPort($hostinfo); $http = new \swoole_http_server($this->host, $this->port); //初始化进程数 ,关联getTaskId函数的使用 $task_num = 0; foreach (self::$q_config as $key => $val) { self::$event_base[$key] = $task_num; self::$cnt[$key] = 0; $task_num += $val; } //初始化配置 $this->config['task_worker_num'] = $task_num; $http->set($this->config); //接受http请求参数 $http->on('request', function ($request, $response) use($http) { if (!isset($request->get['opt'])) { $response->end('HTTP_OPT_ERROR:missing opt'); return; } $opt = $request->get['opt']; if ($opt == 'put') { //获取data数据 if (isset($request->get['data'])) { $data = $request->get['data']; } elseif (isset($request->post['data'])) { $data = $request->post['data']; } else { $response->end('HTTP_PARAM_ERROR:missing data'); return; } $data = json_decode($data, true); if (json_last_error() != JSON_ERROR_NONE) { $response->end(json_last_error_msg()); return; } if (!isset($data['class']) || !isset(self::$q_config[$data['class']])) { $type = 'Common'; } else { $type = $data['class']; } $taskId = $this->getTaskId($type); if (!isset($data['task'])) { $response->end('HTTP_PARAM_ERROR:missing task'); return; } //分配给task的worker $http->task($data, $taskId); $response->end("HTTP_PUT_OK"); } elseif ($opt == 'reload') { $http->reload(); $response->end('reset now!'); return; } elseif ($opt == 'shutdown') { $http->shutdown(); $response->end('shutdown now!'); return; } else { $response->end("HTTP_OPT_ERROR:nothing to do"); return; } }); //任务调度 $http->on('Task', function ($http, $taskId, $fromId, $data) { $rs = $this->doJob($data); return $rs; }); //任务完成的响应事件 $http->on('Finish', function ($http, $taskId, $data) { echo "finish task,the result:" . $data . "\n"; }); $http->start(); }
<?php /** * Created by PhpStorm. * User: janhuang * Date: 15/12/8 * Time: 下午12:00 * Github: https://www.github.com/janhuang * Coding: https://www.coding.net/janhuang * SegmentFault: http://segmentfault.com/u/janhuang * Blog: http://segmentfault.com/blog/janhuang * Gmail: bboyjanhuang@gmail.com * WebSite: http://www.janhuang.me */ include __DIR__ . '/../vendor/autoload.php'; $server = new \swoole_http_server('0.0.0.0', 9600); $server->on('request', function ($request, $response) { $document_root = __DIR__; $script_name = 'swoole.php'; print_r($request); $request = \FastD\Http\SwooleRequest::createRequestHandle($request, ['document_root' => $document_root, 'script_name' => $script_name]); print_r($request); $response->write('base : ' . $request->getBaseUrl() . '<br />'); $response->write('request_uri: ' . $request->getRequestUri() . '<br />'); $response->write('path_info: ' . $request->getPathInfo()); $response->end(''); }); $server->start();
public function run($ip = "0.0.0.0", $port = 6666) { $webServer = new \swoole_http_server($ip, $port); $webServer->set(\Config\Server::getWebServerConfig()); $webServer->on('WorkerStart', array($this, 'onWorkerStart')); $webServer->on('request', array($this, 'onRequest')); $webServer->on('start', array($this, 'onStart')); $webServer->on('ManagerStart', function ($serv) { global $argv; swoole_set_process_name("php {$argv[0]}: manager"); }); $webServer->start(); }
} if (empty($data['push_data']['commits'])) { //没有提交者 mylog('no commit'); return; } //项目名称 $project = $data['push_data']['repository']['name']; //分支名称 $ref = $data['push_data']['ref']; mylog("{$project}: {$ref} push"); global $config; if (empty($config[$project][$ref])) { mylog("no {$project} {$ref}"); return; } $client = new \swoole_client(SWOOLE_SOCK_UDP); foreach ($config[$project][$ref] as $item) { $client->connect($item['host'], $item['port']); $client->send(json_encode([$project, $ref, $item['path']])); } }); $http->on('workerStart', function ($serv, $workerId) { global $config; if (function_exists('opcache_reset')) { opcache_reset(); } $config = (include __DIR__ . DIRECTORY_SEPARATOR . 'config.php'); }); $http->start();
public function __construct() { $http = new swoole_http_server("0.0.0.0", 8080); $http->set(array('worker_num' => 16, 'max_conn' => 10000, 'max_request' => 5000, 'dispatch_mode' => 1, 'daemonize' => 1, 'log_file' => '/var/log/swoole.log')); $http->on('WorkerStart', array($this, 'onWorkerStart')); $http->on('request', function ($request, $response) { if (isset($request->server)) { HttpServer::$server = $request->server; } else { HttpServer::$server = []; } if (isset($request->header)) { HttpServer::$header = $request->header; } else { HttpServer::$header = []; } if (isset($request->get)) { HttpServer::$get = $request->get; } else { HttpServer::$get = []; } if (isset($request->post)) { HttpServer::$post = $request->post; } else { HttpServer::$post = []; } // TODO handle img ob_start(); try { //var_dump(HttpServer::$server['request_uri']); $_SERVER['REQUEST_URI'] = HttpServer::$server['request_uri']; //$_SERVER['REMOTE_ADDR'] = HttpServer::$server['request_uri']; $yaf_request = new Yaf_Request_Http(HttpServer::$server['request_uri']); $this->application->getDispatcher()->dispatch($yaf_request); // unset(Yaf_Application::app()); } catch (\Exception $e) { var_dump($e); } $result = ob_get_contents(); ob_end_clean(); // add Header $response->header('Content-Type', 'no-cache, must-revalidate'); $response->header('Content-Type', 'application/json'); //$response->header('Content-Encoding', 'gzip'); $response->header('Server', 'verycloud'); // add cookies // set status $response->end($result); }); $http->on('WorkerStop', array($this, 'onWorkerStop')); $http->start(); }