Download the PHP package php-websocket-rpc/rpc without Composer
On this page you can find all versions of the php package php-websocket-rpc/rpc. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download php-websocket-rpc/rpc
More information about php-websocket-rpc/rpc
Files in php-websocket-rpc/rpc
Download php-websocket-rpc/rpc
More information about php-websocket-rpc/rpc
Files in php-websocket-rpc/rpc
Vendor php-websocket-rpc
Package rpc
Short Description Shared data model, serialization, and middleware pipeline for RPC over WebSocket
License MIT
Homepage https://github.com/php-websocket-rpc/rpc
Package rpc
Short Description Shared data model, serialization, and middleware pipeline for RPC over WebSocket
License MIT
Homepage https://github.com/php-websocket-rpc/rpc
Please rate this library. Is it a good library?
Informations about the package rpc
php-websocket-rpc/rpc
Shared data model, serialization, middleware pipeline, and contract system for RPC over WebSocket.
This is the foundation library — both rpc-client and rpc-server depend on it.
Install
Requires PHP 8.5+ and the msgpack extension.
Features
- Payload model — base class and kind interfaces (request, response, notification, stream open/close/data)
- Contract system —
ContractInvocation,ContractResponse,ContractStreamInvocation,ContractStreamValue,ContractStreamClose,ContractPublish - PHP Attributes —
#[RpcSubscribe],#[RpcStream],#[RpcPublish],#[NeedAuthorization]for declaring RPC patterns on interfaces - Serialization —
ContractSerializerencodes/decodes values for wire transmission using[FQCN, props]format - Middleware pipeline —
MiddlewarePipelinefor chaining request/response processors - Stream interfaces —
StreamChannelAware,StreamSubscribablefor streaming and pub/sub - Authentication —
AuthServicecontract,WebsocketUserInterface,Uservalue object, typed auth exceptions
Contract Attributes
| Attribute | Target | Purpose |
|---|---|---|
#[RpcSubscribe] |
Method | Subscribe to a named channel (receives push data) |
#[RpcStream] |
Method | Stream data as an async iterable |
#[RpcPublish] |
Method | Publish data to a named channel |
#[NeedAuthorization] |
Method/Class | Require authentication to access a method or entire interface |
Authentication
AuthService Contract
A built-in contract that all clients can use to authenticate:
WebsocketUserInterface
User (built-in value object)
Error Codes
| Exception | Code | Meaning |
|---|---|---|
AuthenticationException |
-32010 | Invalid/expired/missing token |
AuthorizationException |
-32011 | Insufficient permissions |
Both extend RpcDispatchException and carry the error code in getRpcCode().
Key Classes
| Class | Purpose |
|---|---|
PhpWebsocketRpc\Rpc\Payload\Payload |
Base class for all wire payloads |
PhpWebsocketRpc\Rpc\Serialization\Serializer |
Msgpack serialization |
PhpWebsocketRpc\Rpc\Contract\ContractSerializer |
Object encoding/decoding for contract data |
PhpWebsocketRpc\Rpc\Contract\Attribute\RpcSubscribe |
Mark a method as subscribe pattern |
PhpWebsocketRpc\Rpc\Contract\Attribute\RpcStream |
Mark a method as stream pattern |
PhpWebsocketRpc\Rpc\Contract\Attribute\RpcPublish |
Mark a method as publish pattern |
PhpWebsocketRpc\Rpc\Contract\Attribute\NeedAuthorization |
Mark a method/interface as requiring auth |
PhpWebsocketRpc\Rpc\Contract\AuthService |
Built-in authentication contract |
PhpWebsocketRpc\Rpc\Auth\WebsocketUserInterface |
Interface for authenticated user data |
PhpWebsocketRpc\Rpc\Auth\User |
Value object implementing WebsocketUserInterface |
PhpWebsocketRpc\Rpc\Exception\AuthenticationException |
Auth failure (-32010) |
PhpWebsocketRpc\Rpc\Exception\AuthorizationException |
Forbidden (-32011) |
PhpWebsocketRpc\Rpc\Middleware\MiddlewarePipeline |
Middleware chain |
All versions of rpc with dependencies
PHP Build Version
Package Version
The package php-websocket-rpc/rpc contains the following files
Loading the files please wait ...