コード例 #1
0
 /**
  * 通知客户端
  * Enter description here ...
  * @param unknown_type $operation
  * @param unknown_type $data
  */
 protected function queueSend($start = 0)
 {
     $time = Windid::getTime();
     $appids = $nids = array();
     $logDs = $this->_getNotifyLogDs();
     $queue = $logDs->getList(0, 0, 10, $start, 0);
     if (!$queue) {
         return false;
     }
     foreach ($queue as $v) {
         $appids[] = $v['appid'];
         $nids[] = $v['nid'];
     }
     $apps = $this->_getAppDs()->fetchApp(array_unique($appids));
     $notifys = $this->_getNotifyDs()->fetchNotify(array_unique($nids));
     $postData = $urls = array();
     foreach ($queue as $k => $v) {
         $appid = $v['appid'];
         $nid = $v['nid'];
         $array = array('windidkey' => WindidUtility::appKey($v['appid'], $time, $apps[$appid]['secretkey']), 'operation' => $notifys[$nid]['operation'], 'uid' => (int) $notifys[$nid]['param'], 'clientid' => $v['appid'], 'time' => $time);
         $urls[$k] = WindidUtility::buildClientUrl($apps[$appid]['siteurl'], $apps[$appid]['apifile']) . http_build_query($array);
     }
     if (!$urls) {
         return false;
     }
     $result = WindidUtility::buildMultiRequest($urls);
     sleep(3);
     $this->logId = $this->logId + $result;
     $start += 10;
     $this->queueSend($start);
 }
コード例 #2
0
 protected function _request($queue)
 {
     $time = Pw::getTime();
     $appids = $nids = array();
     foreach ($queue as $v) {
         $appids[] = $v['appid'];
         $nids[] = $v['nid'];
     }
     $apps = $this->_getAppDs()->fetchApp(array_unique($appids));
     $notifys = $this->_getNotifyDs()->fetchNotify(array_unique($nids));
     $post = $urls = array();
     foreach ($queue as $k => $v) {
         $appid = $v['appid'];
         $nid = $v['nid'];
         $array = array('windidkey' => WindidUtility::appKey($v['appid'], $time, $apps[$appid]['secretkey']), 'operation' => $notifys[$nid]['operation'], 'clientid' => $v['appid'], 'time' => $time);
         $post[$k] = unserialize($notifys[$nid]['param']);
         $urls[$k] = WindidUtility::buildClientUrl($apps[$appid]['siteurl'], $apps[$appid]['apifile']) . http_build_query($array);
     }
     return WindidUtility::buildMultiRequest($urls, $post);
 }