| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/5/21
- * Time: 16:57
- */
- namespace app\logic\cmdpro;
- use app\lib\DataPack;
- use app\lib\GlobConfigs;
- use app\logic\cmdpro\CmdInf as CmdInf;
- use app\logic\MyPgsql as MyPgsql;
- use swoole ;
- class CmdTest extends CmdInf
- {
- //异步回调实现 mysql
- public function sqlold($serv, $task)
- {
- $db = new \swoole_mysql();
- $config = GlobConfigs::getKey('mysql');
- $db->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_msg','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");
- }
- }
|