Add KCP support
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace LayLink\Transport;
|
||||
|
||||
use LayLink\Protocol\Frame;
|
||||
use LayLink\Protocol\FrameCodec;
|
||||
use LayLink\Protocol\FrameParser;
|
||||
use Workerman\Connection\TcpConnection;
|
||||
|
||||
final class TcpFrameServerConnection implements FrameServerConnection
|
||||
{
|
||||
private FrameParser $parser;
|
||||
|
||||
public function __construct(private readonly TcpConnection $connection)
|
||||
{
|
||||
$this->parser = new FrameParser();
|
||||
}
|
||||
|
||||
public function id(): int
|
||||
{
|
||||
return $this->connection->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Frame[]
|
||||
*/
|
||||
public function push(string $data): array
|
||||
{
|
||||
return $this->parser->push($data);
|
||||
}
|
||||
|
||||
public function send(Frame $frame): bool|null
|
||||
{
|
||||
return $this->connection->send(FrameCodec::encode($frame));
|
||||
}
|
||||
|
||||
public function close(): void
|
||||
{
|
||||
$this->connection->close();
|
||||
}
|
||||
|
||||
public function pauseRecv(): void
|
||||
{
|
||||
$this->connection->pauseRecv();
|
||||
}
|
||||
|
||||
public function resumeRecv(): void
|
||||
{
|
||||
$this->connection->resumeRecv();
|
||||
}
|
||||
|
||||
public function getSendBufferQueueSize(): int
|
||||
{
|
||||
return $this->connection->getSendBufferQueueSize();
|
||||
}
|
||||
|
||||
public function getRemoteIp(): string
|
||||
{
|
||||
return $this->connection->getRemoteIp();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user