Example #1
0
 /**
  * Share session with http server
  *
  * @param  $conn \Ratchet\ConnectionInterface
  */
 public static function get_session(\Ratchet\ConnectionInterface $conn)
 {
     \Session::clear_instances();
     /**
      * Set cookie
      */
     $cookie = $conn->WebSocket->request->getHeader('cookie');
     $data = \Guzzle\Parser\ParserRegistry::getInstance()->getParser('cookie')->parseCookie($cookie);
     $_COOKIE = $data['cookies'];
     /**
      * Set remote address
      */
     $x_forwarded_for = $conn->WebSocket->request->getHeader('x-forwarded-for');
     $_SERVER['REMOTE_ADDR'] = !empty($x_forwarded_for) ? $x_forwarded_for : $conn->remoteAddress;
     /**
      * Set user agent
      * 
      * TODO: How to get user agent like remote address
      */
     \Config::load('session', true);
     \COnfig::set('session.match_ua', false);
     try {
         $session = \Session::forge();
     } catch (\Exception $e) {
         $session = null;
     }
     /**
      * Remove data
      */
     $_SERVER['REMOTE_ADDR'] = null;
     $_COOKIE = null;
     \Session::clear_instances();
     return $session;
 }