예제 #1
0
 public function start($dryRun = false)
 {
     $port = $this->choosePort();
     $this->sendCommand('status', $port, $error);
     // @codeCoverageIgnoreStart
     if (!$error) {
         $this->cliOutput('error', 'Service already started');
         return false;
     }
     // @codeCoverageIgnoreEnd
     $this->prepareServiceAwareComponents();
     $this->debug and $this->prepareDebugObservers();
     if (!$dryRun) {
         $this->initSwoole();
         $this->swoole->start();
     }
     return true;
 }
예제 #2
0
파일: Server.php 프로젝트: myqee/server
 protected function startWorkerServer($config = null)
 {
     switch (self::$serverType) {
         case 3:
         case 2:
             # 主端口同时支持 WebSocket 和 Http 协议
             $className = '\\Swoole\\WebSocket\\Server';
             break;
         case 1:
             # 主端口仅 Http 协议
             $className = '\\Swoole\\Http\\Server';
             break;
         case 0:
         default:
             # 主端口为自定义端口
             $className = '\\Swoole\\Server';
             break;
     }
     # 创建一个服务
     self::$server = new $className(self::$config['server']['host'], self::$config['server']['port'], self::$serverMode, self::$config['server']['sock_type']);
     # 设置配置
     self::$server->set($config ?: self::$config['swoole']);
     $this->bind();
     if (self::$config['sockets']) {
         $this->initSockets();
     }
     if (self::$clustersType > 0) {
         if (self::$config['clusters']['register']['is_register']) {
             # 启动注册服务器
             $worker = new Register\WorkerMain(self::$server);
             $worker->name = 'RegisterServer';
             $worker->listen(self::$config['clusters']['register']['ip'], self::$config['clusters']['register']['port']);
             # 放在Worker对象里
             self::$workers['RegisterServer'] = $worker;
         }
     }
     self::$server->start();
 }
예제 #3
0
<?php

use Swoole\Server;
$serv = new Server("127.0.0.1", 9501);
$serv->on('receive', function (Server $serv, $fd, $from_id, $data) {
    echo "[#" . $serv->worker_id . "]\tClient[{$fd}]: {$data}\n";
    if ($serv->send($fd, "hello\n") == false) {
        echo "error\n";
    }
});
$serv->start();