public function connect(Kernel $kernel)
 {
     $container = $kernel->getContainer();
     $this->stat = $container['stat'];
     $collection = new ControllerCollection();
     $collection->get("/stat", function ($request, $params) use($kernel) {
         $buffer = "memory: " . memory_get_usage(true) . PHP_EOL;
         $stat = $this->stat;
         foreach ($stat as $key => $value) {
             $buffer .= sprintf("%s: %s" . PHP_EOL, $key, $value);
         }
         return $buffer;
     });
     return $collection;
 }
 public function connect(Kernel $kernel)
 {
     $container = $kernel->getContainer();
     $this->stat = $container['stat'];
     $collection = new ControllerCollection();
     $collection->get("/", function ($request, $params) use($kernel) {
         $container = $kernel->getContainer();
         $queue = $container['queue'];
         $config = $container['config'];
         if (isset($params['room_id']) && isset($params['msg'])) {
             if (count($queue) > $config['MAX_QUEUE_COUNT']) {
                 throw new \RuntimeException("Too many queues. please retry");
             }
             $queue->enqueue(array("room_id" => $params['room_id'], "msg" => $params['msg'], "address" => $request['peer']['address']));
             $this->stat->increment('message.enqueue', 1);
         } else {
             throw new \Exception("usage: /?room_id=ROOM_ID&msg=MESSAGE");
         }
         return "QUEUED";
     });
     return $collection;
 }