diff --git a/src/ServerSocketPipeProvider.php b/src/ServerSocketPipeProvider.php index ed3c3e4..ad0a7d7 100644 --- a/src/ServerSocketPipeProvider.php +++ b/src/ServerSocketPipeProvider.php @@ -14,6 +14,7 @@ use Amp\Serialization\Serializer; use Amp\Socket\BindContext; use Amp\Socket\SocketAddress; +use Amp\Socket\SocketAddressType; use Amp\Socket\SocketException; use Amp\Sync\Channel; use Amp\Sync\ChannelException; @@ -62,7 +63,10 @@ public function provideFor(ReadableStream&ResourceStream $stream, ?Cancellation ); } - $uri = (string) $address; + $uri = match ($address->getType()) { + SocketAddressType::Internet => 'tcp://' . $address->toString(), + SocketAddressType::Unix => 'unix://' . $address->toString(), + }; $server = $this->servers[$uri] ??= self::bind($uri, $this->bindContext); $pipe->send($server, $address);