amphp/websocket-client
Async WebSocket client for PHP built on Amp. Connect to ws/wss endpoints with fiber-friendly concurrency, consume realtime APIs, test WebSocket servers, and support custom handshakes, headers, heartbeats, and rate limits.
League\Uri\Http deprecation warning by @foxycode in https://github.com/amphp/websocket-client/pull/56Full Changelog: https://github.com/amphp/websocket-client/compare/v2.0.1...v2.0.2
Full Changelog: https://github.com/amphp/websocket-client/compare/v2.0.0...v2.0.1
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.
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.Rfc6455ConnectionFactory instance provided when constructing a Rfc6455Connector.WebsocketConnector instance may be accessed and set via Amp\Websocket\Client\websocketConnector().amphp/websocket@v2 and amphp/http-client@v5amphp/http@v2WebsocketHandshakeamphp/socket@v2 and amphp/websocket@v2-beta.4Rfc6455ConnectionFactory constructor to use an instance of WebsocketParserFactory, moving some configuration options to Rfc6455ParserFactoryInitial 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.
Websocket as a prefix to several classes:
Connection renamed to WebsocketConnectionConnectionFactory renamed to WebsocketConnectionFactoryConnector renamed to WebsocketConnectorConnectionException renamed to WebsocketConnectExceptionHandshake renamed to WebsocketHandshakeconnector function to websocketConnector/docs in .gitattributes to avoid broken symlink (#38)Full Changelog: https://github.com/amphp/websocket-client/compare/v1.0.0...v1.0.1
Connection. Now the Response object is available with Connection::getResponse(), which provides access to the response headers and other response data.connector() function, so there is no longer a global Connector object.Handshake::withHeaders() to remove all prior set headers as expected.ConnectContext parameter to connect() function.ConnectionException now extends HttpException from amphp/http-client.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](https://github.com/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.
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.league/uri@^6, subsequently PHP 7.2+ is now required.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](https://github.com/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.How can I help you explore Laravel packages today?