gos / websocket-client
WAMP client in PHP
Fund package maintenance!
mbabker
Installs: 2 034 960
Dependents: 3
Suggesters: 0
Security: 0
Stars: 32
Watchers: 5
Forks: 6
Open Issues: 0
Requires
- php: ^7.2 || ^8.0
- ext-json: *
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/deprecation-contracts: ^2.1 || ^3.0
- symfony/options-resolver: ^4.4 || ^5.3 || ^6.0
Requires (Dev)
- cboden/ratchet: ^0.4.3
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: 1.2.0
- phpstan/phpstan-phpunit: 1.0.0
- phpunit/phpunit: ^8.5 || ^9.5
README
NOTE - This repository is deprecated, future releases will only be made for critical bugs and security vulnerabilities. Use Pawl instead.
WebSocketPhpClient
About
This package provides a PHP client that can send messages to a websocket server utilizing the WAMPv1 protocol. Listening for replies is not supported at this time.
Supported functions:
- prefix
- call
- publish
- event
Usage
Directly Create A Client
You can directly create a Gos\Component\WebSocketClient\Wamp\ClientInterface
instance by creating a new Gos\Component\WebSocketClient\Wamp\Client
object. The constructor has two mandatory requirements; the server host and port. You may review the Client class constructor
to see all arguments.
<?php use Gos\Component\WebSocketClient\Wamp\Client; $client = new Client('127.0.0.1', 8080);
Through The Factory
A Gos\Component\WebSocketClient\Wamp\ClientFactoryInterface
is available to create client instances as well. The default Gos\Component\WebSocketClient\Wamp\ClientFactory
supports a PSR-3 logger and will automatically inject it into the client if one is present.
<?php use Gos\Component\WebSocketClient\Wamp\ClientFactory; $factory = new ClientFactory(['host' => '127.0.0.1', 'port' => 8080]); $client = $factory->createConnection();
Interact With Server
Once you have created a client, you can connect and interact with your websocket server.
<?php use Gos\Component\WebSocketClient\Wamp\ClientFactory; $factory = new ClientFactory(['host' => '127.0.0.1', 'port' => 8080]); $client = $factory->createConnection(); $sessionId = $client->connect(); // Establish a prefix on server $client->prefix('calc', 'http://example.com/simple/calc#'); // You can send an arbitrary number of arguments $client->call('calc', 12, 14, 15); $data = [0, 1, 2]; // Or an array $client->call('calc', $data); $exclude = [$sessionId]; // No sense in sending the payload to ourselves $eligible = []; // List of other clients ids that are eligible to receive this payload $client->publish('topic', '', $exclude, $eligible); // Publish an event $client->event('topic', ''); $client->disconnect();
License
This software is distributed under MIT License. See LICENSE for more info.