PackageTrack
Sign in Get early access

amphp/websocket-client

Async WebSocket client for PHP based on Amp.

v2.0.2 7.1M downloads/mo #609 most downloaded on Packagist amphp/websocket-client

What this package is like to depend on

Last release 12 months ago

24 Aug 2025

Ships fairly regularly

a new release about every 6 months

Some releases are documented

notes for 5 of 11 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

17 releases · first in 2016

0 releases in the last 12 months

see the full history below

Release timeline

17 releases · Nov 2016 to Aug 2025
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 17
  1. v2.0.2 24 Aug 2025
    Release notes

    What's Changed

    • Fix League\Uri\Http deprecation warning by @foxycode in #56

    Full Changelog: v2.0.1...v2.0.2

    Open source →
  2. v2.0.1 07 Dec 2024
    Release notes

    What's Changed

    • Fix missing semicolon in readme by @nimah79 in #50
    • Make Rfc6455Connector compatible with PHP 8.4 by @foxycode in #53

    New Contributors

    Full Changelog: v2.0.0...v2.0.1

    Open source →
  3. v2.0.0 28 Dec 2023
    Release notes

    Stable release compatible with AMPHP v3 and fibers! 🎉

    As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.

    This release is compatible with amphp/http-client@^5 and amphp/websocket@^2. See the release notes of these libraries for further change notes.

    Similar to v1, a Websocket connection is created using Amp\Websocket\Client\connect() or using an instance of WebsocketConnector, calling WebsocketConnector::connect(). The returned WebsocketConnection then is used to send and receive WebSocket messages.

    • Renamed most classes and interfaces to add Websocket as a prefix to avoid name collisions with similarly named classes in other packages which are frequently used together. For example, Connection is now WebsocketConnection.
    • Advanced handshake and connection parameters may be specified using a Rfc6455ConnectionFactory instance provided when constructing a Rfc6455Connector.
    • A global WebsocketConnector instance may be accessed and set via Amp\Websocket\Client\websocketConnector().
    Open source →
    Release notes
    • Compatibility with amphp/websocket@v2 and amphp/http-client@v5
    Open source →
    Release notes
    • Compatibility with amphp/http@v2
    • Added query-related methods to WebsocketHandshake
    Open source →
    Release notes
    • Updated for compatibility with amphp/socket@v2 and amphp/[email protected]
    • Altered Rfc6455ConnectionFactory constructor to use an instance of WebsocketParserFactory, moving some configuration options to Rfc6455ParserFactory
    Open source →
    Release notes

    Initial release compatible with AMPHP v3.

    As with other libraries compatible with AMPHP v3, most cases of parameters or returns of Promise<ResolutionType> have been replaced with ResolutionType.

    • Added Websocket as a prefix to several classes:
      • Connection renamed to WebsocketConnection
      • ConnectionFactory renamed to WebsocketConnectionFactory
      • Connector renamed to WebsocketConnector
      • ConnectionException renamed to WebsocketConnectException
      • Handshake renamed to WebsocketHandshake
    • Renamed connector function to websocketConnector
    Open source →
  4. v2.0.0-beta.4 20 Oct 2023 pre-release

    Nothing published for this version

  5. v2.0.0-beta.3 26 Apr 2023 pre-release

    Nothing published for this version

  6. v2.0.0-beta.2 06 Feb 2023 pre-release

    Nothing published for this version

  7. v2.0.0-beta.1 05 Jun 2022 pre-release

    Nothing published for this version

  8. v1.0.1 10 Mar 2022
    Release notes
    • Ignore /docs in .gitattributes to avoid broken symlink (#38)

    Full Changelog: v1.0.0...v1.0.1

    Open source →
  9. v1.0.0 05 Jul 2020
    Release notes

    Changes since RC2

    • Removed header methods from Connection. Now the Response object is available with Connection::getResponse(), which provides access to the response headers and other response data.
    • Removed the connector() function, so there is no longer a global Connector object.
    • Fixed Handshake::withHeaders() to remove all prior set headers as expected.
    • Added ConnectContext parameter to connect() function.
    • ConnectionException now extends HttpException from amphp/http-client.

    Upgrading from v0.2.x to v1.0

    This library has been refactored to use the new amphp/websocket library containing components that can be shared between server and clients.

    The simplest way to use this library is with the connect() function to initiate a WebSocket connection.

    $connection = yield Amp\Websocket\Client\connect('ws://localhost:1337/broadcast');
    yield $connection->send('Hello!');
    
    /** @var Amp\Websocket\Message $message */
    while ($message = yield $connection->receive()) {
        $payload = yield $message->buffer();
        // $payload now contains the entire message content
        yield $connection->send('Received message with length ' . strlen($payload));
    }

    Custom request headers and connections options can be set using the Handshake class and passing this object to connect() instead of a string URI. Connection behavior can be further customized by using an instance of Connector to establish a connection instead of the connect() function.

    WebSocket clients are now represented by Connection, which extends the Client object from amphp/websocket. This object contains several methods for getting information about the client, fetching the headers returned in the server response, and sending/receiving messages.

    Open source →
    Release notes
    • This library now uses HttpClient from amphp/http-client to send connection requests. As such, Rfc6455Connector requires an instance of HttpClient when constructed. The client may have various interceptors attached to modify behavior when connecting.
    • Updated to league/uri@^6, subsequently PHP 7.2+ is now required.
    Open source →
  10. v1.0.0-rc2 26 Feb 2020 pre-release

    Nothing published for this version

  11. v1.0.0-rc1 22 Aug 2019 pre-release

    Nothing published for this version

  12. v0.2.4 06 Feb 2019

    Nothing published for this version

  13. v0.2.3 30 Jan 2019

    Nothing published for this version

  14. v0.2.2 18 Dec 2017

    Nothing published for this version

  15. v0.2.1 17 Dec 2017

    Nothing published for this version

  16. v0.2.0 16 Dec 2017

    Nothing published for this version

  17. v0.1.0 16 Nov 2016

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive