Example #1
2
 public function onOpen(ConnectionInterface $from, RequestInterface $request = null)
 {
     if (empty($request)) {
         $resp = new Response(400);
         $from->send((string) $resp);
         $from->close();
         return;
     }
     // Session management
     $saveHandler = $this->_handler;
     $id = $request->getCookie(ini_get('session.name'));
     if (empty($id)) {
         $id = sha1(uniqid() . mt_rand());
     }
     // Crappy workaround for sessions - don't know why they are not saved
     // @see https://github.com/ratchetphp/Ratchet/blob/master/src/Ratchet/Session/SessionProvider.php
     if (isset($this->sessions[$id])) {
         $from->Session = $this->sessions[$id];
     } else {
         $from->Session = new Session(new VirtualSessionStorage($saveHandler, $id, $this->_serializer));
         $this->sessions[$id] = $from->Session;
     }
     if (ini_get('session.auto_start')) {
         $from->Session->start();
     }
     $this->onRequest($from, $request);
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function onOpen(ConnectionInterface $conn, RequestInterface $request = null)
 {
     if (null === $request || null === ($id = $request->getCookie(ini_get('session.name')))) {
         $saveHandler = $this->_null;
         $id = '';
     } else {
         $saveHandler = $this->_handler;
     }
     $conn->Session = new Session(new VirtualSessionStorage($saveHandler, $id, $this->_serializer));
     if (ini_get('session.auto_start')) {
         $conn->Session->start();
     }
     return $this->_app->onOpen($conn, $request);
 }
Example #3
0
 protected function onRequest(GuzzleRequest $request)
 {
     if (null === ($id = $request->getCookie(ini_get('session.name')))) {
         $saveHandler = new NullSessionHandler();
         $id = '';
     } else {
         $saveHandler = $this->saveHandler;
     }
     $serialClass = "Ratchet\\Session\\Serialize\\{$this->toClassCase(ini_get('session.serialize_handler'))}Handler";
     // awesome/terrible hack, eh?
     if (!class_exists($serialClass)) {
         throw new \RuntimeException('Unable to parse session serialize handler');
     }
     $serializer = new $serialClass();
     $this->session = new Session(new VirtualSessionStorage($saveHandler, $id, $serializer));
     if (ini_get('session.auto_start')) {
         $this->session->start();
     }
 }
Example #4
0
 /**
  * Get a cookie value by name
  *
  * @param string $name Cookie to retrieve
  *
  * @return null|string
  */
 public function getCookie($name)
 {
     return $this->wrapped->getCookie($name);
 }