You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php 
 | |
| $table = new swoole_table(1024);
 | |
| $table->column('fd', swoole_table::TYPE_INT);
 | |
| $table->column('from_id', swoole_table::TYPE_INT);
 | |
| $table->column('data', swoole_table::TYPE_STRING, 64);
 | |
| $table->create();
 | |
| 
 | |
| $serv = new swoole_server('127.0.0.1', 9501);
 | |
| $serv->set(['dispatch_mode' => 1]);
 | |
| $serv->table = $table;
 | |
| 
 | |
| $serv->on('connect', function($serv, $fd, $from_id){
 | |
| 	$info = $serv->connection_info($fd);
 | |
| 	$serv->send($fd, "INFO: fd=$fd, from_id=$from_id, addr={$info['remote_ip']}:{$info['remote_port']}\n");
 | |
| });
 | |
| 
 | |
| $serv->on('receive', function ($serv, $fd, $from_id, $data) {
 | |
| 	
 | |
| 	$cmd = explode(" ", trim($data));
 | |
| 	
 | |
| 	//get
 | |
| 	if ($cmd[0] == 'get')
 | |
| 	{
 | |
| 		//get self
 | |
| 		if (count($cmd) < 2) 
 | |
| 		{
 | |
| 			$cmd[1] = $fd;
 | |
| 		}
 | |
| 		$get_fd = intval($cmd[1]);
 | |
| 		$info = $serv->table->get($get_fd);
 | |
| 		$serv->send($fd, var_export($info, true)."\n");
 | |
| 	}
 | |
| 	//set
 | |
| 	elseif ($cmd[0] == 'set')
 | |
| 	{
 | |
| 		$ret = $serv->table->set($fd, array('from_id' => $data, 'fd' => $fd, 'data' => $cmd[1]));
 | |
| 		if ($ret === false) 
 | |
| 		{
 | |
| 			$serv->send($fd, "ERROR\n");
 | |
| 		}
 | |
| 		else
 | |
| 		{
 | |
| 			$serv->send($fd, "OK\n");
 | |
| 		}
 | |
| 	}
 | |
| 	else 
 | |
| 	{
 | |
| 		$serv->send($fd, "command error.\n");
 | |
| 	}
 | |
| });
 | |
| 
 | |
| $serv->start(); |