connect($config, function (\swoole_mysql $db, $r) use ($serv, $task) { if ($r === false) { $serv->push($task->data->fd, json_encode(['data' => $task->data, 'err' => [$db->connect_errno, $db->connect_error], 'fd' => $task->data->fd], 256)); return false; } $packdata = json_decode($task->data->data, true); $sql = 'select * from bm_admin where admin_id=' . intval($packdata['data']); $db->query($sql, function (\swoole_mysql $db, $r2) use ($serv, $task) { if ($r2) { $serv->push($task->data->fd, json_encode(['record' => $r2, 'fd' => $task->data->fd], 256)); } $db->close(); }); }); } //协程实现mysql public function mysqlgo($serv, $task) { $swoole_mysql = new \Swoole\Coroutine\MySQL(); $config = GlobConfigs::getKey('mysql'); $swoole_mysql->connect($config); $Pack = json_decode($task->data->data, true); $DataArr = $Pack['data']; $table = isset($DataArr['table']) ? $DataArr['table'] : ''; $field = isset($DataArr['field']) ? $DataArr['field'] : ''; $value = isset($DataArr['value']) ? $DataArr['value'] : ''; if (empty($task) || empty($field)) { return; } try { $ret = $swoole_mysql->query("select * from $table where $field='$value' "); if ($ret) { $this->sendTo($serv, $task->data->fd, DataPack::toJson(['data' => $ret])); } } catch (\Exception $e) { echo "Exception:" . $e->getCode() . ' - ' . $e->getMessage(); } $swoole_mysql->close(); } //协程redis public function redis($serv, $task) { $config = GlobConfigs::getKey('redis'); go(function () use ($serv, $task, $config) { $redis = new \Swoole\Coroutine\Redis(); $redis->connect($config['host'], $config['port']); $redis->set('test', date('Y-m-d H:i:s')); $val = $redis->get('test'); $this->sendTo($serv, $task->data->fd, DataPack::toJson(['data' => $val])); }); } public function broad($serv, $task) { $pack = json_decode($task->data->data, true); $msg = $pack['data']; $this->onlineBroad($serv, $msg . ' ' . $this->dotest()); } public function dotick($serv, $task) { $pack = json_decode($task->data->data, true); $data = $pack['data']; $fid = isset($data['fid']) ? intval($data['fid']) : 0; $msg = isset($data['msg']) ? $data['msg'] : ''; if (!$serv->exist($fid)) { $this->sendTo($serv, $task->data->fd, '此用户不在线!' . $fid); return; } if ($fid == $task->data->fd) { $this->sendTo($serv, $task->data->fd, '自己不能踢自己!'); return; } $this->sendTo($serv, $fid, $msg); $serv->disconnect($fid); return; } //时间同步用 public function timeRsync($serv,$task){ $dataArr = json_decode($task->data->data,true); $msg = DataPack::toJson(['mtype'=>'system','stype'=>'TimeSync','data'=>$dataArr['data']]); $this->onlineBroad($serv,$msg); return ; } public function pgsql($serv,$task){ $dataArr = json_decode($task->data->data,true); $config = GlobConfigs::getKey('pgsql'); go(function () use ($serv, $task, $config,$dataArr) { $conf = $config ; $mysql = new Capsule(); $mysql->addConnection($conf); $mysql->setAsGlobal(); $mysql->bootEloquent(); $ret = DB::table('account')->where('id',83859)->first(); $this->sendTo($serv, $task->data->fd, DataPack::toJson(['mtype'=>'system','data'=>$ret])); }); } public function pgsqlquery($serv,$task){ $dataArr = json_decode($task->data->data,true); $ret = MyPgsql::getInstance()->getDb()->table('members')->where('id',intval($dataArr['data']))->first(); $this->sendTo($serv, $task->data->fd, DataPack::toJson(['mtype'=>'system','data'=>$ret])); } public function pgsqlexec($serv,$task){ $dataArr = json_decode($task->data->data,true); $ret = MyPgsql::getInstance()->getDb()->table('members')->where('id',57)->update(['name'=>'12-'.$dataArr['data']]); $this->sendTo($serv, $task->data->fd, DataPack::toJson(['mtype'=>'system','data'=>$ret])); } private function dotest() { return " hellow,baby,at " . date("Y-m-d H:i:s"); } }