Skip to content

Releases: amphp/websocket-client

2.0.0

28 Dec 22:25
v2.0.0
87a5d32
Compare
Choose a tag to compare

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().

2.0.0 Beta 4

20 Oct 03:06
v2.0.0-beta.4
f6d27cc
Compare
Choose a tag to compare
2.0.0 Beta 4 Pre-release
Pre-release
  • Compatibility with amphp/websocket@v2 and amphp/http-client@v5

2.0.0 Beta 3

26 Apr 03:50
v2.0.0-beta.3
24daf3c
Compare
Choose a tag to compare
2.0.0 Beta 3 Pre-release
Pre-release
  • Compatibility with amphp/http@v2
  • Added query-related methods to WebsocketHandshake

2.0.0 Beta 2

26 Apr 03:48
v2.0.0-beta.2
fee0aa6
Compare
Choose a tag to compare
2.0.0 Beta 2 Pre-release
Pre-release
  • 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

2.0.0 Beta 1

21 Jun 20:28
v2.0.0-beta.1
0c8c939
Compare
Choose a tag to compare
2.0.0 Beta 1 Pre-release
Pre-release

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

1.0.1

10 Mar 20:11
v1.0.1
bcf5262
Compare
Choose a tag to compare
  • Ignore /docs in .gitattributes to avoid broken symlink (#38)

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

1.0.0

05 Jul 17:52
173b541
Compare
Choose a tag to compare

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.

1.0.0 RC2

29 Feb 15:39
f42543a
Compare
Choose a tag to compare
1.0.0 RC2 Pre-release
Pre-release
  • 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.

1.0.0 RC1

09 Sep 14:44
63499f4
Compare
Choose a tag to compare
1.0.0 RC1 Pre-release
Pre-release

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

Note: This is a pre-release, there might be breaking changes in the final stable version.

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 customized using the Connector interface or by extending the existing Rfc6455Connector class.

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.

0.2.4

06 Feb 15:38
6f25a62
Compare
Choose a tag to compare
  • Fixed incorrect dependency that was only being loaded in dev mode.
  • Fixed port being added to host header if the port is non-standard (e.g., not 80/443).