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'])); }
public function Set($key, $num = 0) { //Log::Debug("Set $key to $num"); return $this->table->set($key, [self::FIELD => $num]); }
<?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";
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));
* @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
<?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); }
<?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()); }
* 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 "[1A\n[K-----------------------[47;30m SWOOLE [0m-----------------------------\n[0m"; echo 'swoole version:' . swoole_version() . " PHP version:" . PHP_VERSION . "\n"; echo "------------------------[47;30m WORKERS [0m---------------------------\n";
<?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();
* 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 "[1A\n[K-----------------------[47;30m SWOOLE [0m-----------------------------\n[0m"; echo 'swoole version:' . swoole_version() . " PHP version:" . PHP_VERSION . "\n"; echo "------------------------[47;30m WORKERS [0m---------------------------\n";