You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| class ProxyServer
 | |
| {
 | |
|     protected $clients;
 | |
|     protected $backends;
 | |
|     protected $serv;
 | |
| 
 | |
|     function run()
 | |
|     {
 | |
|         $serv = new swoole_server("127.0.0.1", 9509);
 | |
|         $serv->set(array(
 | |
|             'timeout' => 1, //select and epoll_wait timeout.
 | |
|             'poll_thread_num' => 1, //reactor thread num
 | |
|             'worker_num' => 32, //reactor thread num
 | |
|             'backlog' => 128, //listen backlog
 | |
|             'max_conn' => 10000,
 | |
|             'dispatch_mode' => 2,
 | |
|             //'open_tcp_keepalive' => 1,
 | |
|             //'log_file' => '/tmp/swoole.log', //swoole error log
 | |
|         ));
 | |
|         $serv->on('WorkerStart', array($this, 'onStart'));
 | |
|         $serv->on('Connect', array($this, 'onConnect'));
 | |
|         $serv->on('Receive', array($this, 'onReceive'));
 | |
|         $serv->on('Close', array($this, 'onClose'));
 | |
|         $serv->on('WorkerStop', array($this, 'onShutdown'));
 | |
|         //swoole_server_addtimer($serv, 2);
 | |
|         #swoole_server_addtimer($serv, 10);
 | |
|         $serv->start();
 | |
|     }
 | |
| 
 | |
|     function onStart($serv)
 | |
|     {
 | |
|         $this->serv = $serv;
 | |
|         echo "Server: start.Swoole version is [" . SWOOLE_VERSION . "]\n";
 | |
|     }
 | |
| 
 | |
|     function onShutdown($serv)
 | |
|     {
 | |
|         echo "Server: onShutdown\n";
 | |
|     }
 | |
| 
 | |
|     function onClose($serv, $fd, $from_id)
 | |
|     {
 | |
| 
 | |
|     }
 | |
| 
 | |
|     function onConnect($serv, $fd, $from_id)
 | |
|     {
 | |
|         
 | |
|     }
 | |
| 
 | |
|     function onReceive($serv, $fd, $from_id, $data)
 | |
|     {
 | |
| 		$socket = new swoole_client(SWOOLE_SOCK_TCP);
 | |
|         if($socket->connect('127.0.0.1', 80, 0.5))
 | |
|         {
 | |
| 			$socket->send($data);
 | |
| 			$serv->send($fd, $socket->recv(8192, 0));
 | |
| 		}
 | |
|         unset($socket);
 | |
|         $serv->close($fd);
 | |
|     }
 | |
| }
 | |
| 
 | |
| $serv = new ProxyServer();
 | |
| $serv->run();
 |