コード例 #1
0
ファイル: GaController.php プロジェクト: kaihatsusha/kpimon
 public function actionGetPageView($mediaId, $key)
 {
     $listMedia = array_filter(explode('|', $mediaId));
     $listKey = array_filter(explode('|', $key));
     $listIdAndKey = array_combine($listMedia, $listKey);
     $googleAnalytics = GARequest::install();
     $last_time_haschange = [];
     header('Content-Type: text/event-stream');
     header('Cache-Control: no-cache');
     while (1) {
         foreach ($listIdAndKey as $id => $key) {
             try {
                 $result = $googleAnalytics->getGAData($id, $key);
                 if (empty($result) || empty($result['timestamp'])) {
                     GAUtils::streamError($result, false, $id);
                 } elseif (!isset($last_time_haschange[$id]) || $result['timestamp'] != $last_time_haschange[$id]) {
                     $last_time_haschange[$id] = $result['timestamp'];
                     GAUtils::streamHasData($result['value'], $id);
                 } else {
                     GAUtils::streamPing($id);
                 }
             } catch (\yii\base\Exception $exc) {
                 $error = ['errno' => $exc->getMessage()];
                 GAUtils::streamError($error, false, $id);
             }
         }
         ob_flush();
         flush();
         sleep(2);
     }
 }