_secured = $secured; $this->_endPoint = $endPoint; return; } /** * Retrieve the websocket endpoint * * @return string */ public function getEndPoint() { return $this->_endPoint; } /** * Factory to create a valid `Hoa\Socket\Socket` object. * * @param string $socketUri URI of the socket to connect to. * @return void */ public static function transportFactory($socketUri) { $parsed = parse_url($socketUri); if (false === $parsed || !isset($parsed['host'])) { throw new Exception( 'URI %s seems invalid, cannot parse it.', 0, $socketUri ); } $secure = isset($parsed['scheme']) ? 'wss' === $parsed['scheme'] : false; $port = isset($parsed['port']) ? $parsed['port'] : (true === $secure ? 443 : 80); return new static( 'tcp://' . $parsed['host'] . ':' . $port, $secure, (isset($parsed['path']) ? $parsed['path'] : '/') . (isset($parsed['query']) ? '?' . $parsed['query'] : '') ); } } /** * Register `ws://` and `wss://` transports. */ HoaSocket\Transport::register('ws', ['Hoa\Websocket\Socket', 'transportFactory']); HoaSocket\Transport::register('wss', ['Hoa\Websocket\Socket', 'transportFactory']);