$this->send($client_id, 'Server: ' . $ws['message']); //$this->broadcast($client_id, $ws['message']); } function broadcast($client_id, $msg) { foreach ($this->connections as $clid => $info) { if ($client_id != $clid) { $this->send($clid, $msg); } } } } //require __DIR__'/phar://swoole.phar'; Swoole\Config::$debug = true; Swoole\Error::$echo_html = false; $AppSvr = new WebSocket(); $AppSvr->loadSetting(__DIR__ . "/swoole.ini"); //加载配置文件 $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger /** * 如果你没有安装swoole扩展,这里还可选择 * BlockTCP 阻塞的TCP,支持windows平台 * SelectTCP 使用select做事件循环,支持windows平台 * EventTCP 使用libevent,需要安装libevent扩展 */ $enable_ssl = false; $server = Swoole\Network\Server::autoCreate('0.0.0.0', 9443, $enable_ssl); $server->setProtocol($AppSvr); //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 1, 'ssl_key_file' => __DIR__ . '/ssl/ssl.key', 'ssl_cert_file' => __DIR__ . '/ssl/ssl.crt'));
<?php define('DEBUG', 'on'); define("WEBPATH", realpath(__DIR__ . '/../')); require_once __DIR__ . '/../vendor/autoload.php'; Swoole\Loader::vendor_init(); Swoole\Loader::addNameSpace('WebIM', __DIR__ . '/src/'); Swoole::$php->config->setPath(__DIR__ . '/apps/configs'); $AppSvr = new Swoole\Protocol\HttpServer(); $AppSvr->loadSetting(__DIR__ . '/../swoole.ini'); //加载配置文件 $AppSvr->setDocumentRoot(__DIR__); $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger $server = new \Swoole\Network\Server('0.0.0.0', 8888); $server->setProtocol($AppSvr); $server->run(array('worker_num' => 1));
<?php define('DEBUG', 'on'); define('WEBPATH', __DIR__); /** * /vendor/autoload.php是Composer工具生成的 * shell: composer update */ require __DIR__ . '/vendor/autoload.php'; /** * Swoole框架自动载入器初始化 */ Swoole\Loader::vendor_init(); /** * 注册命名空间到自动载入器中 */ Swoole\Loader::addNameSpace('WebIM', __DIR__ . '/src/'); $config = (require __DIR__ . '/config.php'); $webim = new WebIM\Server($config); $webim->loadSetting(__DIR__ . "/swoole.ini"); //加载配置文件 /** * webim必须使用swoole扩展 */ $server = new Swoole\Network\Server($config['server']['host'], $config['server']['port']); $server->setProtocol($webim); $server->run($config['swoole']);
<?php define('DEBUG', 'on'); define("WEBPATH", realpath(__DIR__ . '/../')); require __DIR__ . '/../libs/lib_config.php'; //require __DIR__'/phar://swoole.phar'; Swoole\Config::$debug = false; class EchoServer extends Swoole\Protocol\Base { function onReceive($server, $client_id, $from_id, $data) { $this->server->send($client_id, "Swoole: " . $data); } } //设置PID文件的存储路径 Swoole\Network\Server::setPidFile(__DIR__ . '/echo_server.pid'); Swoole\Network\Server::addOption('c|config:', "要加载的配置文件"); /** * 显示Usage界面 * php app_server.php start|stop|reload */ Swoole\Network\Server::start(function ($options) { $AppSvr = new EchoServer(); $listenHost = empty($options['host']) ? '0.0.0.0' : $options['host']; $listenPort = empty($options['port']) ? 9501 : $options['port']; $server = Swoole\Network\Server::autoCreate($listenHost, $listenPort); $server->setProtocol($AppSvr); $server->run(array('worker_num' => 1)); });
<?php define('DEBUG', 'on'); define("WEBPATH", realpath(__DIR__ . '/../')); require dirname(__DIR__) . '/libs/lib_config.php'; Swoole\Config::$debug = false; $AppSvr = new Swoole\Protocol\HttpServer(); $AppSvr->loadSetting(__DIR__ . '/swoole.ini'); //加载配置文件 $AppSvr->setDocumentRoot(__DIR__ . '/webroot'); $AppSvr->setLogger(new Swoole\Log\EchoLog(true)); //Logger Swoole\Error::$echo_html = false; $server = Swoole\Network\Server::autoCreate('0.0.0.0', 8888); $server->setProtocol($AppSvr); //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 0, 'max_request' => 5000, 'log_file' => '/tmp/swoole.log'));
function runHttpServer($host = '0.0.0.0', $port = 9501, $config = array()) { define('SWOOLE_SERVER', true); define('SWOOLE_HTTP_SERVER', true); $this->ext_http_server = $this->http = new Swoole\Http\ExtServer($config); Swoole\Network\Server::$useSwooleHttpServer = true; $server = new Swoole\Network\Server($host, $port); $server->setProtocol($this->http); $server->run($config); }
<?php define('DEBUG', 'on'); define('WEBPATH', realpath(__DIR__ . '/../')); require dirname(__DIR__) . '/libs/lib_config.php'; //设置PID文件的存储路径 Swoole\Network\Server::setPidFile(__DIR__ . '/app_server.pid'); /** * 显示Usage界面 * php app_server.php start|stop|reload */ Swoole\Network\Server::start(function () { $server = Swoole\Protocol\WebServer::create(__DIR__ . '/swoole.ini'); $server->setAppPath(WEBPATH . '/apps/'); //设置应用所在的目录 $server->setDocumentRoot(WEBPATH); $server->setLogger(new \Swoole\Log\EchoLog(__DIR__ . "/webserver.log")); //Logger //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 1, 'max_request' => 5000, 'log_file' => '/tmp/swoole.log')); });
<?php require __DIR__ . '/config.php'; //require __DIR__'/phar://swoole.phar'; //Swoole\Config::$debug = true; Swoole\Error::$echo_html = false; $AppSvr = new Swoole\Protocol\AppServer(); $AppSvr->loadSetting("./swoole.ini"); //加载配置文件 $AppSvr->setAppPath(__DIR__ . '/apps/'); //设置应用所在的目录 $AppSvr->setDocumentRoot(__DIR__); $AppSvr->setLogger(new \Swoole\Log\FileLog('/tmp/swoole.log')); //Logger $server = new \Swoole\Network\Server('0.0.0.0', 9501); $server->setProtocol($AppSvr); //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 2, 'max_request' => 1000));
<?php define('DEBUG', 'on'); define('WEBPATH', dirname(__DIR__)); require WEBPATH . '/libs/lib_config.php'; //设置PID文件的存储路径 Swoole\Network\Server::setPidFile(__DIR__ . '/built_webserver.pid'); /** * 显示Usage界面 * php app_server.php start|stop|reload */ Swoole\Network\Server::start(function () { $config = array('document_root' => WEBPATH, 'worker_num' => 100, 'max_request' => 5000, 'log_file' => '/tmp/swoole.log'); Swoole::$php->runHttpServer('0.0.0.0', 9501, $config); });
<?php define('DEBUG', 'on'); define('WEBPATH', dirname(__DIR__)); require WEBPATH . '/libs/lib_config.php'; //设置PID文件的存储路径 Swoole\Network\Server::setPidFile(__DIR__ . '/built_webserver.pid'); /** * 显示Usage界面 * php app_server.php start|stop|reload */ Swoole\Network\Server::start(function () { $config = array('document_root' => WEBPATH, 'log_file' => '/tmp/swoole.log', 'charset' => 'UTF-8'); Swoole::$php->runHttpServer('0.0.0.0', 9501, $config); });
$this->send($client_id, 'Server: ' . $ws['message']); //$this->broadcast($client_id, $ws['message']); } function broadcast($client_id, $msg) { foreach ($this->connections as $clid => $info) { if ($client_id != $clid) { $this->send($clid, $msg); } } } } //require __DIR__'/phar://swoole.phar'; Swoole\Config::$debug = true; Swoole\Error::$echo_html = false; $AppSvr = new WebSocket(); $AppSvr->loadSetting(__DIR__ . "/swoole.ini"); //加载配置文件 $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger /** * 如果你没有安装swoole扩展,这里还可选择 * BlockTCP 阻塞的TCP,支持windows平台 * SelectTCP 使用select做事件循环,支持windows平台 * EventTCP 使用libevent,需要安装libevent扩展 */ $enable_ssl = false; $server = new \Swoole\Network\Server('0.0.0.0', 9443, $enable_ssl); $server->setProtocol($AppSvr); //$server->daemonize(); //作为守护进程 $server->run(array('worker_num' => 1, 'ssl_key_file' => __DIR__ . '/ssl/ssl.key', 'ssl_cert_file' => __DIR__ . '/ssl/ssl.crt'));
return; } } } /** * 广播 * @param $client_id * @param $msg */ public function broadcast($client_id, $msg, $ignoreSelf = true) { foreach ($this->connections as $clid => $info) { if ($ignoreSelf && $client_id == $clid) { continue; } $this->send($clid, $msg); } } } $AppSvr = new WebSocket(); $AppSvr->loadSetting(CONFIG_PATH . "/swoole.ini"); //加载配置文件 $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger $server = Swoole\Network\Server::autoCreate('0.0.0.0', 9443, false); $server->setProtocol($AppSvr); if ('off' === DEBUG) { $server->daemonize(); } //作为守护进程 $server->run(['worker_num' => 1, 'max_request' => 5000, 'heartbeat_check_interval' => 60]);