Example #1
0
 /**
  * 连接上服务器回调
  */
 public static function onConnect()
 {
     try {
         /**
          * 注册服务器
          */
         $rs = self::$rpc->Reg(self::$host);
         if ($rs) {
             # 返回成功
             self::$host->key = $rs->key;
             self::$host->ip = $rs->ip;
             self::$host->id = $rs->id;
             if (is_array($rs->hosts) && $rs->hosts) {
                 foreach ($rs->hosts as $host) {
                     /**
                      * @var Host $host
                      */
                     $host->save();
                 }
             }
             # 保存数据, 其它 worker 进程就可以使用了
             self::$host->save();
             # 更新时间
             Host::$lastChangeTime->set(time());
             \MyQEE\Server\Server::$instance->info('register clusters host group: ' . self::$host->group . '#' . self::$host->id . '(' . self::$host->ip . ':' . self::$host->port . ') success.');
         } else {
             throw new \Exception('result error.');
         }
     } catch (\Exception $e) {
         \MyQEE\Server\Server::$instance->warn('register clusters host(' . self::$host->ip . ':' . self::$host->port . ') fail. ' . $e->getMessage());
     }
 }