Releases: amphp/websocket-client
2.0.2
2.0.1
2.0.0
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
Websocketas a prefix to avoid name collisions with similarly named classes in other packages which are frequently used together. For example,Connectionis nowWebsocketConnection. - Advanced handshake and connection parameters may be specified using a
Rfc6455ConnectionFactoryinstance provided when constructing aRfc6455Connector. - A global
WebsocketConnectorinstance may be accessed and set viaAmp\Websocket\Client\websocketConnector().
2.0.0 Beta 4
- Compatibility with
amphp/websocket@v2andamphp/http-client@v5
2.0.0 Beta 3
- Compatibility with
amphp/http@v2 - Added query-related methods to
WebsocketHandshake
2.0.0 Beta 2
- Updated for compatibility with
amphp/socket@v2andamphp/[email protected] - Altered
Rfc6455ConnectionFactoryconstructor to use an instance ofWebsocketParserFactory, moving some configuration options toRfc6455ParserFactory
2.0.0 Beta 1
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
Websocketas a prefix to several classes:Connectionrenamed toWebsocketConnectionConnectionFactoryrenamed toWebsocketConnectionFactoryConnectorrenamed toWebsocketConnectorConnectionExceptionrenamed toWebsocketConnectExceptionHandshakerenamed toWebsocketHandshake
- Renamed
connectorfunction towebsocketConnector
1.0.1
1.0.0
Changes since RC2
- Removed header methods from
Connection. Now theResponseobject is available withConnection::getResponse(), which provides access to the response headers and other response data. - Removed the
connector()function, so there is no longer a globalConnectorobject. - Fixed
Handshake::withHeaders()to remove all prior set headers as expected. - Added
ConnectContextparameter toconnect()function. ConnectionExceptionnow extendsHttpExceptionfromamphp/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
- This library now uses
HttpClientfromamphp/http-clientto send connection requests. As such,Rfc6455Connectorrequires an instance ofHttpClientwhen 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.