Example #1
0
function handle_reset()
{
    $device = @$_GET['device'];
    if (empty($device)) {
        $device = get_device();
    }
    if (empty($device)) {
        return 'no device';
    }
    //删除保存了的在线列表
    mmc_array_del(NS_DEVICE_LIST, $device);
    //删除保存了的账户信息
    $mem = api_open_mmc();
    $mem->ns_delete(NS_BINDED_LIST, $device);
    $mem->ns_delete(NS_BINDED_CAPTION, $device);
    foreach (mmc_array_keys(NS_BINDING_LIST) as $platform) {
        $ns_bind_list = NS_BINDING_LIST . $platform;
        mmc_array_del($ns_bind_list, $device);
    }
    //删除保存了的计划任务消息记录
    $mem->ns_delete(NS_SCHED_DEVICE, $device);
    $mem->ns_delete(NS_PLANS_DEVICE, $device);
    new_user($device, time() + COOKIE_TIMEOUT_NEW);
    //清空cookie
    unset($_COOKIE[COOKIE_DEVICE_SAVED]);
    setcookie(COOKIE_DEVICE_SAVED, '', time() - 3600, '/', COOKIE_DOMAIN);
    return 'succeed';
}
Example #2
0
function onebox_cached($content)
{
    $mem = api_open_mmc();
    $result = $mem->ns_get(NS_ONEBOX_CACHE, md5($content));
    if (empty($result)) {
        $result = make_onebox_appgame($content);
        $mem->ns_set(NS_ONEBOX_CACHE, md5($content), $result);
    }
    return $result;
}
Example #3
0
function async_checkpoint_update()
{
    $mem = api_open_mmc();
    $mem->set(CHECKPOINT_TIME_KEY, time());
}
Example #4
0
header('Access-Control-Allow-Credentials: true');
header('Content-Type: text/html; charset=utf-8');
$cmd = @$_POST['cmd'];
if ($cmd == 'sendmessage') {
    $device_list = $_POST['target'];
    $cmdbox = $_POST['cmdbox'];
    $msgmod = $cmdbox['msgmod'];
    $new_text = make_onebox_appgame($cmdbox['text']);
    if ($new_text !== $cmdbox['text']) {
        $cmdbox['text'] = $new_text;
    }
    $ok_res = [];
    $error_res = [];
    //放置异步消息
    if ($msgmod == 'heartbeat') {
        $mem = api_open_mmc();
        foreach ($device_list as $device) {
            if ($cmdbox_list = $mem->ns_get(NS_HEARTBEAT_MESSAGE, $device)) {
                array_push($cmdbox_list, $cmdbox);
            } else {
                $cmdbox_list = array($cmdbox);
            }
            if ($mem->ns_set(NS_HEARTBEAT_MESSAGE, $device, $cmdbox_list, CACHE_EXPIRE_SECONDS)) {
                $ok_res[] = $device;
            } else {
                $error_res[] = $device;
            }
        }
        die(jsonp(['ok' => $ok_res, 'error' => $error_res]));
    }
    //发送实时消息
Example #5
0
function get_locale_mem($ip)
{
    $mem = api_open_mmc();
    if ($city_name = $mem->ns_get(GET_DEVICE, $ip)) {
        return $city_name;
    }
    $city_name = get_city_name($ip);
    if (empty($city_name)) {
        $city_name = $ip;
    }
    $mem->ns_set(GET_LOCALE, $ip, $city_name, GET_LOCALE_EXPIRE);
    return $city_name;
}
Example #6
0
function async_timer($script_path, $time_interval = null)
{
    $mem = api_open_mmc();
    $item = $mem->ns_get(SCRIPT_TIMER, $script_path);
    $now_time = time();
    do {
        if (empty($item)) {
            break;
        }
        if (is_null($time_interval)) {
            $time_interval = $item['interval'];
        }
        if ($now_time - $item['lasttime'] > $time_interval) {
            break;
        }
        return $item['lasttime'];
    } while (false);
    if (is_null($time_interval)) {
        return $now_time;
    }
    $new_item = array('interval' => $time_interval, 'lasttime' => $now_time);
    $mem->ns_set(SCRIPT_TIMER, $script_path, $new_item);
    call_async_php($script_path);
    return $now_time;
}