Example #1
0
function handle_list_command($list_name, $cmd_name)
{
    switch ($cmd_name) {
        case 'list':
            $res = mmc_array_values($list_name);
            if (count($res) === 0) {
                update_sched_tasks($list_name);
                $res = mmc_array_values($list_name);
            }
            return jsonp($res);
        case 'create':
        case 'update':
            $key_name = @$_POST['name'];
            if ($key_name) {
                return result_ok(mmc_array_set($list_name, md5($key_name), $_POST));
            } else {
                return '{"res": false}';
            }
        case 'delete':
            mmc_array_del($list_name, md5($_POST['name']));
            if (mmc_array_length($list_name) === 0) {
                del_cached_file($list_name);
            }
            return result_ok(true);
        case 'flush':
            sched_changed();
            return '{"res": false}';
        case 'names':
            return jsonp(mmc_array_keys($list_name));
        case 'tags':
            $items = mmc_array_values($list_name);
            $output_tags = [];
            foreach ($items as $item) {
                $tags = @$item['tags'];
                if ($tags) {
                    $tag_list = explode(' ', $tags);
                    foreach ($tag_list as $tag) {
                        $output_tags[] = $tag;
                    }
                }
            }
            return jsonp($output_tags);
        default:
            die('{"res": false}');
    }
}
Example #2
0
function get_online_objects()
{
    $device_browser_list = mmc_array_values(NS_DEVICE_LIST);
    time_print('性能分析:取列表:');
    if (isset($_GET['debug'])) {
        $device_count = mmc_array_length(NS_DEVICE_LIST);
        $memcache_obj = new Memcache();
        $memcache_obj->connect(MEMC_HOST, MEMC_PORT);
        $stats = $memcache_obj->getStats();
        $memcache_obj->close();
        $dbg_print = '开始时间:' . getDateStyle($stats['time'] - $stats['uptime']);
        $dbg_print .= ' 使用内存: ' . bytesToSize($stats['bytes']) . '/' . bytesToSize($stats['limit_maxbytes']);
        $dbg_print .= '<br>清理时间:' . getDateStyle(async_timer('/on_timer_online_list.php'));
        $dbg_print .= ' 维护设备数: ' . $device_count . '  活跃设备数: ' . count($device_browser_list);
        $xmlStr = file_get_contents('http://' . $_SERVER['SERVER_NAME'] . '/channels-stats');
        $channels = json_decode($xmlStr);
        $dbg_print .= '<br>推送开始:' . getDateStyle(time() - $channels->uptime) . ' 频道数: ' . $channels->channels;
        $dbg_print .= ' 订阅数: ' . $channels->subscribers . ' 消息数: ' . $channels->published_messages;
        $dbg_print .= '<br>流程计数: ' . counter() . '<br>';
        echo $dbg_print;
    }
    /******************************************************
    	预处理:账户绑定列表
    	******************************************************/
    $aDataSet = [];
    foreach ($device_browser_list as $browser) {
        if (empty($browser)) {
            continue;
        }
        $account = @$browser['bind_account'];
        $device = $browser['device'];
        $useragent = $browser['UserAgent'];
        $ref_obj = $browser['Visiting'] ? parse_url($browser['Visiting']) : null;
        $visiting = @$ref_obj['host'];
        $is_mobile = $browser['ismobiledevice'] ? 'mobi' : 'desk';
        $aDataSet[] = [$account, $browser['region'], $visiting, $browser['browser'], $browser['platform'], $is_mobile, $browser['device_name'], $browser['device']];
    }
    time_print('整合:');
    if (isset($_GET['debug'])) {
        echo time_print();
    }
    return $aDataSet;
}
Example #3
0
<?php

require_once 'functions.php';
print_r2(mmc_array_values(DATA_MESSAGE_LIST));