/** * 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; }
/** * @return AMQPStreamConnection */ protected function getConnection() { if (isset($this->connection)) { return $this->connection; } $host = Config::get('queue', 'host'); $port = Config::get('queue', 'port'); $user = Config::get('queue', 'user'); $pass = COnfig::get('queue', 'pass'); return $this->connection = new AMQPStreamConnection($host, $port, $user, $pass); }