/** * 通知客户端 * 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); }
public function clientTestAction() { $clientid = $this->getInput('clientid'); $client = $this->_getAppDs()->getApp($clientid); if (!$client) { $this->showError('WINDID:fail'); } $time = Pw::getTime(); $array = array('windidkey' => WindidUtility::appKey($client['id'], $time, $client['secretkey']), 'operation' => 999, 'uid' => 1, 'clientid' => $client['id'], 'time' => $time); $url = WindidUtility::buildClientUrl($client['siteurl'], $client['apifile']) . http_build_query($array); $result = WindidUtility::buildRequest($url); if ($result === 'seccess') { $this->showMessage('WINDID:success'); } $this->showError('WINDID:fail'); }
public function clientTestAction() { $clientid = $this->getInput('clientid'); $client = $this->_getAppDs()->getApp($clientid); if (!$client) { $this->showError('WINDID:fail'); } $time = Pw::getTime(); $params['params'] = serialize(array('test' => $time)); $windidkey = WindidUtility::appKey($client['id'], $time, $client['secretkey']); $url = WindidUtility::buildClientUrl($client['siteurl'], $client['apifile']) . 'operation=999&windidkey=' . $windidkey . '&clentid=' . $client['id'] . '&time=' . $time; $result = WindidUtility::buildRequest($url, $params); if ($result === 'seccess') { $this->showMessage('ADMIN:success'); } $this->showError('ADMIN:fail'); }
/** * 同步登录登出 * * @param string $notify * @param int $uid */ public function syn($method, $uid, $appid = 0) { $operation = $this->getOperation($method); $time = Pw::getTime(); $data = array(); $apps = $this->_getAppDs()->getList(); $syn = false; foreach ($apps as $val) { if (!$val['issyn'] && $val['id'] == $appid) { $syn = true; break; } if (!$val['issyn'] || $val['id'] == $appid) { continue; } $array = array('windidkey' => WindidUtility::appKey($val['id'], $time, $val['secretkey'], array('uid' => $uid), array()), 'operation' => $operation, 'uid' => $uid, 'clientid' => $val['id'], 'time' => $time); $data[] = WindidUtility::buildClientUrl($val['siteurl'], $val['apifile']) . http_build_query($array); } return $syn ? array() : $data; }
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); }