You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| class Server
 | |
| {
 | |
|     public $server;
 | |
|     public $redisPool = [];
 | |
|     public $mysqlPool = [];
 | |
| 
 | |
|     public function run()
 | |
|     {
 | |
|         $this->server = new Swoole\Http\Server("0.0.0.0", 9501, SWOOLE_BASE);
 | |
|         $this->server->set([
 | |
|             'worker_num' => 1,
 | |
|         ]);
 | |
| 
 | |
| //        $this->server->on('Connect', [$this, 'onConnect']);
 | |
|         $this->server->on('Request', [$this, 'onRequest']);
 | |
| //        $this->server->on('Close', [$this, 'onClose']);
 | |
| 
 | |
|         $this->server->start();
 | |
|     }
 | |
| 
 | |
|     function log($msg)
 | |
|     {
 | |
|         echo $msg."\n";
 | |
|     }
 | |
| 
 | |
|     public function onConnect($serv, $fd, $reactorId)
 | |
|     {
 | |
| //        $this->log("onConnect: fd=$fd");
 | |
| //        $redis = new Swoole\Coroutine\Redis();
 | |
| //        $redis->connect('127.0.0.1', 6379);
 | |
| //        $this->redisPool[$fd] = $redis;
 | |
|     }
 | |
| 
 | |
|     public function onClose($serv, $fd, $reactorId)
 | |
|     {
 | |
| //        $this->log("onClose: fd=$fd");
 | |
| //        $redis = $this->redisPool[$fd];
 | |
| //        $redis->close();
 | |
| //        unset($this->redisPool[$fd]);
 | |
|     }
 | |
| 
 | |
|     public function onRequest($request, $response)
 | |
|     {
 | |
| //        $this->log("onRequest: fd=$request->fd");
 | |
| 
 | |
|         if (empty($this->redisPool[$request->fd]))
 | |
|         {
 | |
|             $redis = new Swoole\Coroutine\Redis();
 | |
|             $redis->connect('127.0.0.1', 6379);
 | |
|             $this->redisPool[$request->fd] = $redis;
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             $redis = $this->redisPool[$request->fd];
 | |
|         }
 | |
|         $ret = $redis->get('key');
 | |
| 
 | |
|         if (empty($this->mysqlPool[$request->fd]))
 | |
|         {
 | |
|             $mysql = new Swoole\Coroutine\MySQL();
 | |
|             $mysql->connect([
 | |
|                 'host' => '127.0.0.1',
 | |
|                 'port' => 3306,
 | |
|                 'user' => 'root',
 | |
|                 'password' => 'root',
 | |
|                 'database' => 'test',
 | |
|             ]);
 | |
|         }
 | |
|         else
 | |
|         {
 | |
|             $mysql = $this->mysqlPool[$request->fd];
 | |
|         }
 | |
| 
 | |
|         $ret2 = $mysql->query('show tables');
 | |
|         $response->end('redis value=' . $ret.', mysql talbes='.var_export($ret2, true));
 | |
|     }
 | |
| }
 | |
| 
 | |
| $server = new Server();
 | |
| $server->run();
 | |
| 
 | |
| 
 | |
| 
 |