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.
- 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,Clientis nowWebsocketClient,Messageis nowWebsocketMessage. WebsocketMessage(formerlyMessage) now implementsStringable, allowing the object to be simply cast to a string to buffer the contents of a message. Max message limits set on the client will apply.- Added
WebsocketExceptionas base class forWebsocketClosedExceptionas well as a new exception,WebsocketParserException. - The
Optionsobject has been removed. Various configurations options previously available in this class can now be specified by constructor arguments to various factories, such asRfc6455ParserFactoryin this library or the client factories found inamphp/websocket-serverandamphp/websocket-client. - Move compression related classes into a
Compressionsub-namespace. - Split the parser and frame compiler from the client implementation, now found in the
Parsersub-namespace. This change will allow for greater visibility and logging of activity on a websocket connection. - Added
WebsocketHeartbeatQueueandWebsocketRateLimitinterfaces with implementationsPeriodicHeartbeatQueueandConstantRateLimit. These interfaces and implementations offer greater extensibility and fine-tuning of connection behavior, while maintaining easy setup for most applications. ClientMetadatahas been removed in favor ofWebsocketCountandWebsocketTimestampenums coupled with methods on aWebsocketClient,getCount()andgetTimestamp(), to query for connection info.- The callback provided to
WebsocketClient::onClose()is now invoked with two arguments – the Websocket client ID and an instance ofWebsocketCloseInfoproviding the close code, reason, time, and whom initiated the close.