예제 #1
0
 function setHttpConf(array $Arr)
 {
     if ($Arr && is_array($Arr)) {
         $json = json_encode($Arr);
         $this->ConfigSWTable->set(self::HTTP_CONFIG_TABLE_KEY, [self::HTTP_CONFIG_TABLE_KEY => $json]);
         return true;
     }
     return false;
 }
 public function subscribe($data, $source)
 {
     $this->subscribers->set($source, array('channel' => $data['channel']));
     if ($data['channel']) {
         $this->response(sprintf("You have subscribed to [%s].", $data['channel']), $source);
     } else {
         $this->response("You have subscribed to ALL channels.", $source);
     }
     Cli::out(sprintf("%s subscribed to [%s]", $source, $data['channel']));
 }
예제 #3
0
 public function Set($key, $num = 0)
 {
     //Log::Debug("Set $key to $num");
     return $this->table->set($key, [self::FIELD => $num]);
 }
예제 #4
0
<?php

$table = new swoole_table(1024);
$table->column('name', swoole_table::TYPE_STRING, 64);
$table->column('id', swoole_table::TYPE_INT, 4);
//1,2,4,8
$table->column('num', swoole_table::TYPE_FLOAT);
$table->create();
$table->set('*****@*****.**', array('id' => 145, 'name' => 'rango1', 'num' => 3.1415));
$table->set('*****@*****.**', array('id' => 358, 'name' => "Rango2", 'num' => 3.1415));
$table->set('*****@*****.**', array('id' => 189, 'name' => 'rango3', 'num' => 3.1415));
foreach ($table as $key => $value) {
    var_dump($key, $value);
}
echo "======================= Total Elements: {$table->count()} ============================\n";
$table->del('*****@*****.**');
// delete a exist element
foreach ($table as $key => $value) {
    var_dump($key, $value);
}
echo "======================= Total Elements: {$table->count()} ============================\n";
$ret = $table->del('a invalid key');
// delete a invalid element
var_dump($ret);
foreach ($table as $key => $value) {
    var_dump($key, $value);
}
echo "======================= Total Elements: {$table->count()} ============================\n";
예제 #5
0
파일: worker_table.php 프로젝트: cjq/tests
    if ($fun == 'get_set') {
        $fun = 'set_get';
    } else {
        $fun = 'get_set';
    }
    $worker = new swoole_process($fun, false, false);
    $worker->start();
}
/*
$worker=new swoole_process('get_set',false,false);//正向
$worker->start();
*/
//master process
while (true) {
    for ($i = $row - 1; $i >= 0; $i--) {
        $r = $table->set("id:{$i}", array("name" => $i + 1, "count" => $i + 2));
        $table->get('id:' . $i);
    }
    echo "master\r\n";
    sleep(5);
}
function set_get($worker)
{
    global $table;
    global $key_num;
    while (true) {
        for ($i = $key_num - 1; $i >= 0; $i--) {
            $name = $i + 1;
            $count = $i + 2;
            $table->get('id:' . $i);
            $result = $table->set('id:' . $i, array('name' => $name, 'count' => $count));
예제 #6
0
 * @var int
 */
$_maxMasterPidLength = 12;
$_maxManagerPidLength = 12;
$_maxWorkerIdLength = 12;
$_maxWorkerPidLength = 12;
/**
 * 创建一个websocket服务器
 * 端口8888
 */
$table = new swoole_table(1024);
$table->column('cmd', swoole_table::TYPE_STRING, 32);
$table->column('interval', swoole_table::TYPE_INT, 2);
$table->column('count', swoole_table::TYPE_STRING, 10);
$table->create();
$table->set('vmstat', array('cmd' => $vmstat_path, 'interval' => $interval, 'count' => $count));
$server = new swoole_websocket_server($host, $port);
$server->table = $table;
//将table保存在serv对象上
/**
 * 创建一个子进程
 * 子进程创建成功后调用函数callback_vmstat
 */
$process = new swoole_process('callback_vmstat', true);
$pid = $process->start();
/**
 * websocket server配置
 */
$server->set(array('worker_num' => 1, 'daemonize' => false, 'max_request' => 1000, 'dispatch_mode' => 1));
/**
 * websocket server start
예제 #7
0
파일: table.php 프로젝트: ppker/swoole-src
<?php

$table = new swoole_table(1000);
//table rows size
$table->column('id', swoole_table::TYPE_INT, 4);
//1,2,4,8
$table->column('name', swoole_table::TYPE_STRING, 64);
$table->column('num', swoole_table::TYPE_FLOAT, 4);
//4,8
$table->create();
exit;
//memory size= 72 * (100000 + 20000) //20% conflict
$key = '*****@*****.**';
$table->add($key, array('id' => 145, 'name' => 'rango', 'num' => 3.1415));
$value = $table->get($key);
$table->set($key, array('id' => 120, 'num' => 1.414));
$table->del($key);
$rows = $table->find(array('id' => 10), swoole_table::FIND_GT);
$rows = $table->find(array('id' => 10), swoole_table::FIND_LT);
$rows = $table->find(array('id' => 10), swoole_table::FIND_EQ);
//default
$rows = $table->find(array('id' => 10), swoole_table::FIND_NEQ);
$rows = $table->find(array('name' => 'ran'), swoole_table::FIND_LEFTLIKE);
$rows = $table->find(array('name' => 'go'), swoole_table::FIND_RIGHTLIKE);
while ($row = $table->next()) {
    var_dump($row);
}
예제 #8
0
<?php

/**
 * The script is used for simulating the usage of swoole_table() and guaranting its usability.
 */
$table = new swoole_table(1024);
$table->column('name', swoole_table::TYPE_STRING, 64);
$table->column('id', swoole_table::TYPE_INT, 4);
//1,2,4,8
$table->column('num', swoole_table::TYPE_FLOAT);
$table->create();
while (true) {
    $i = rand(1, 1000);
    $if = rand(0, 1);
    if ($if) {
        $table->set($i, ['id' => $i, 'name' => $i, 'num' => $i]);
    } else {
        $table->del($i);
    }
    var_dump('count ' . $table->count());
}
예제 #9
0
 * WorkerId命令时格式化输出
 * WorkerPid命令时格式化输出
 * @var int
 */
$_maxMasterPidLength = 12;
$_maxManagerPidLength = 12;
$_maxWorkerIdLength = 12;
$_maxWorkerPidLength = 12;
/**
 * 创建一个websocket服务器
 * 端口8888
 */
$table = new swoole_table(4);
$table->column('cmd', swoole_table::TYPE_STRING, 32);
$table->create();
$table->set('uptime', array('cmd' => $uptime_path));
$server = new swoole_websocket_server($host, $port);
$server->table = $table;
//将table保存在serv对象上
/**
 * websocket server配置
 */
$server->set(array('worker_num' => 1, 'daemonize' => false, 'max_request' => 1000, 'dispatch_mode' => 1));
/**
 * websocket server start
 * 成功后回调
 */
$server->on('start', function ($serv) use($_maxMasterPidLength, $_maxManagerPidLength, $_maxWorkerIdLength, $_maxWorkerPidLength) {
    echo "\n----------------------- SWOOLE -----------------------------\n";
    echo 'swoole version:' . swoole_version() . "          PHP version:" . PHP_VERSION . "\n";
    echo "------------------------ WORKERS ---------------------------\n";
예제 #10
0
<?php

/**
 * Created by PhpStorm.
 * User: ClownFish
 * Date: 15-10-11
 * Time: 下午9:16
 */
$table = new swoole_table(1024);
$table->column("id", swoole_table::TYPE_INT, 4);
$table->column("name", swoole_table::TYPE_STRING, 64);
$table->column('num', swoole_table::TYPE_FLOAT);
$table->create();
$table->set('*****@*****.**', array('id' => 145, 'name' => 'rango', 'num' => 3.1415));
$process = new swoole_process('callback_function', false, false);
$process->table = $table;
$pid = $process->start();
echo "aa\n";
function callback_function(swoole_process $worker)
{
    echo "bb\n";
    print_r($worker->table->get("*****@*****.**"));
}
swoole_process::wait();
예제 #11
0
 * WorkerPid命令时格式化输出
 * @var int
 */
$_maxMasterPidLength = 12;
$_maxManagerPidLength = 12;
$_maxWorkerIdLength = 12;
$_maxWorkerPidLength = 12;
/**
 * 创建一个websocket服务器
 * 端口8888
 */
$table = new swoole_table(4);
$table->column('cmd', swoole_table::TYPE_STRING, 32);
$table->column('param', swoole_table::TYPE_STRING, 4);
$table->create();
$table->set('free', array('cmd' => $free_path, 'param' => $param));
$server = new swoole_websocket_server($host, $port);
$server->table = $table;
//将table保存在serv对象上
/**
 * websocket server配置
 */
$server->set(array('worker_num' => 1, 'daemonize' => false, 'max_request' => 1000, 'dispatch_mode' => 1));
/**
 * websocket server start
 * 成功后回调
 */
$server->on('start', function ($serv) use($_maxMasterPidLength, $_maxManagerPidLength, $_maxWorkerIdLength, $_maxWorkerPidLength) {
    echo "\n----------------------- SWOOLE -----------------------------\n";
    echo 'swoole version:' . swoole_version() . "          PHP version:" . PHP_VERSION . "\n";
    echo "------------------------ WORKERS ---------------------------\n";