Async WebSocket server adapter for Amp based on different implementations.

1.0 2020-04-10 14:58 UTC

This package is auto-updated.

Last update: 2020-09-10 15:52:13 UTC


Websocket server is set of interfaces that provide webaocket server for amphp


This package can be installed as a Composer dependency.

composer require ekstazi/websocket-server-adapter


PHP 7.2+


Interfaces provided

interface ServerFactory


create(Amp\Socket\Server $socket, LoggerInterface $logger = null): Server

Return server class instance

interface Server


public function addRoute(string $path, Handler $handler): void;

Add handler to specified route.

public function run(): void;

Run main event loop and subscribes to SIGINT/SIGTERM signal.

public function stop(): Promise

Stop the server and finish event loop

interface Handler


public function onHandshake(ConnectionInfo $connectionInfo): Promise;

Called after handshake negotiated but before websocket upgrade. You can validate your connections here

public function handle(Connection $connection): Promise;

This method called after upgrade is finished.

public function getSubProtocols(): array;

List of subprotocols supported. If client doesn't support one of it then connection not started

interface ConnectionInfo


public function getId(): string;

Get id of connection

public function getArgs(): array;

Get args passed to connection

public function getRemoteAddress(): string;

Get remote address of client

interface Connection extends ConnectionInterface, ConnectionInfo

For more details see ekstazi/websocket-common