runAll() public static method

Run all worker instances.
public static runAll ( ) : void
return void
Exemplo n.º 1
38
 public function startAction()
 {
     $worker = new Worker('tcp://0.0.0.0:1234');
     $worker->count = 2;
     $worker->onMessage = array($this, 'onMessage');
     $worker->onConnect = array($this, 'onConnect');
     $worker->onWorkerStart = array($this, 'onWorkerStart');
     $worker->runAll();
 }
Exemplo n.º 2
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     //
     global $argv;
     $argv[0] = 'artisan';
     $argv[1] = 'reload';
     Worker::runAll();
 }
Exemplo n.º 3
0
 public static function runAll($AppName = null)
 {
     self::$AppName = $AppName ?: "workerman";
     static::$logFile = self::workermanTempFile(self::FILE_TYPE_LOG);
     static::$pidFile = self::workermanTempFile(self::FILE_TYPE_PID);
     static::$stdoutFile = self::workermanTempFile(self::FILE_TYPE_STDOUT);
     parent::runAll();
 }
Exemplo n.º 4
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     //
     $deamonMode = $this->option('deamon');
     global $argv;
     $argv[0] = 'artisan';
     $argv[1] = 'restart';
     $argv[2] = $deamonMode ? '-d' : null;
     Worker::runAll();
 }
Exemplo n.º 5
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $ws_worker = new Worker("websocket://0.0.0.0:2346");
     $ws_worker->onConnect = function ($connection) {
         echo "New connection\n";
     };
     $ws_worker->onMessage = function (TcpConnection $connection, $data) {
         // 转发数据给所有客户端
         foreach ($connection->worker->connections as $connection) {
             /** @var TcpConnection $connection */
             $connection->send($data);
         }
     };
     $ws_worker->onClose = function ($connection) {
         echo "Connection closed\n";
     };
     // Hack Run worker
     global $argv;
     $argv = [null, 'start'];
     $ws_worker->runAll();
 }
Exemplo n.º 6
0
$gateway->count = 4;
// 分布式部署时请设置成内网ip(非127.0.0.1)
$gateway->lanIp = '127.0.0.1';
// 内部通讯起始端口,假如$gateway->count=4,起始端口为4000
// 则一般会使用4001 4002 4003 4004 4个端口作为内部通讯端口
$gateway->startPort = 3000;
// 心跳间隔
$gateway->pingInterval = 10;
// 心跳数据
$gateway->pingData = '{"type":"ping"}';
/* 上线时 为了安全 开启
// 当客户端连接上来时,设置连接的onWebSocketConnect,即在websocket握手时的回调
$gateway->onConnect = function($connection)
{
    $connection->onWebSocketConnect = function($connection , $http_header)
    {
        // 可以在这里判断连接来源是否合法,不合法就关掉连接
        // $_SERVER['HTTP_ORIGIN']标识来自哪个站点的页面发起的websocket链接
        if($_SERVER['HTTP_ORIGIN'] != 'http://chat.zhbor.com')
        {
            $connection->close();
        }
        // onWebSocketConnect 里面$_GET $_SERVER是可用的
        // var_dump($_GET, $_SERVER);
    };
}; 
*/
// 如果不是在根目录启动,则运行runAll方法
if (!defined('GLOBAL_START')) {
    Worker::runAll();
}
Exemplo n.º 7
0
 /**
  * 启动服务器
  * @return void
  */
 public function start()
 {
     if ($this->isStart) {
         return;
     }
     $this->isStart = true;
     Worker::runAll();
 }
Exemplo n.º 8
0
 /**
  * start server
  *
  */
 public function start()
 {
     Worker::runAll();
 }
Exemplo n.º 9
0
<?php

/**
 * WebSocket Server.
 */
require_once 'vendor/autoload.php';
use Workerman\Worker;
$websocketServer = new Worker('websocket://127.0.0.1:8080');
$websocketServer->onConnect = function ($connection) {
    $data = json_encode(['time' => time(), 'message' => 'Merhaba!']);
    $connection->send($data);
};
$websocketServer->onMessage = function ($connection, $data) {
    $data = json_encode(['time' => time(), 'message' => htmlspecialchars($data, ENT_NOQUOTES | ENT_HTML5, 'UTF-8')]);
    $connection->send($data);
};
$websocketServer->onClose = function ($connection) {
};
$websocketServer->runAll();
Exemplo n.º 10
-1
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     //
     $deamonMode = $this->option('deamon');
     // 检查扩展
     if (!extension_loaded('pcntl')) {
         $this->error("Please install pcntl extension. See http://doc3.workerman.net/install/install.html\n");
         return;
     }
     if (!extension_loaded('posix')) {
         $this->error("Please install posix extension. See http://doc3.workerman.net/install/install.html\n");
         return;
     }
     // 标记是全局启动
     define('GLOBAL_START', 1);
     $applications = Config::get('workerboy.applications');
     // 加载所有Applications/*/start.php,以便启动所有服务
     foreach ($applications as $application => $config) {
         $startPath = base_path($application);
         if (is_file($startPath)) {
             require_once $startPath;
         }
     }
     // 运行所有服务
     global $argv;
     $argv[0] = 'artisan';
     $argv[1] = 'start';
     $argv[2] = $deamonMode ? '-d' : null;
     Worker::runAll();
 }