protected function parseSockUri($uri)
{
$result = new \stdClass();
$p = parse_url($uri);
if ($p) {
switch (strtolower($p['scheme'])) {
case 'tcp':
case 'tcp4':
case 'ssl':
case 'sslv2':
case 'sslv3':
case 'tls':
$result->type = SWOOLE_SOCK_TCP;
$result->host = $p['host'];
$result->port = $p['port'];
break;
case 'tcp6':
$result->type = SWOOLE_SOCK_TCP6;
$result->host = $p['host'];
$result->port = $p['port'];
break;
case 'unix':
$result->type = SWOOLE_UNIX_STREAM;
$result->host = $p['path'];
$result->port = 0;
break;
default:
throw new \Exception("Can't support this scheme: {$p['scheme']}");
}
} else {
throw new \Exception("Can't parse this uri: " . $uri);
}
return $result;
}