gos / websocket-client
PHP 中的 WAMP 客户端
v1.5.0
2021-11-24 03:24 UTC
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
注意 - 该仓库已弃用,未来仅对关键错误和安全漏洞进行更新。请使用 Pawl。
WebSocketPhpClient
关于
此包提供了一个PHP客户端,可以利用WAMPv1协议向WebSocket服务器发送消息。目前不支持监听回复。
支持的函数
- prefix
- call
- publish
- event
使用方法
直接创建客户端
您可以通过创建一个新的 Gos\Component\WebSocketClient\Wamp\Client
对象来直接创建一个 Gos\Component\WebSocketClient\Wamp\ClientInterface
实例。构造函数有两个必填要求;服务器主机和端口。您可以通过查看 Client 类构造函数
来查看所有参数。
<?php use Gos\Component\WebSocketClient\Wamp\Client; $client = new Client('127.0.0.1', 8080);
通过工厂
还有一个 Gos\Component\WebSocketClient\Wamp\ClientFactoryInterface
可以用来创建客户端实例。默认的 Gos\Component\WebSocketClient\Wamp\ClientFactory
支持PSR-3日志记录器,如果存在,将自动将其注入到客户端。
<?php use Gos\Component\WebSocketClient\Wamp\ClientFactory; $factory = new ClientFactory(['host' => '127.0.0.1', 'port' => 8080]); $client = $factory->createConnection();
与服务器交互
一旦创建了一个客户端,您就可以连接并与其WebSocket服务器进行交互。
<?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();
许可
本软件根据MIT许可分发。有关更多信息,请参阅LICENSE。