@@ -10,24 +10,23 @@ An asynchronous WebSocket client in PHP
1010
1111#### Usage
1212Pawl as a standalone app: Connect to an echo server, send a message, display output, close connection:
13+
1314``` php
1415<?php
1516
16- require __DIR__ . '/vendor/autoload.php';
17-
18- \Ratchet\Client\connect('wss://echo.websocket.org:443')->then(function($conn) {
19- $conn->on('message', function($msg) use ($conn) {
20- echo "Received: {$msg}\n";
21- $conn->close();
22- });
17+ require __DIR__ . '/vendor/autoload.php';
2318
24- $conn->send('Hello World!');
25- }, function ($e) {
26- echo "Could not connect: {$e->getMessage()}\n";
19+ \Ratchet\Client\connect('wss://echo.websocket.org:443')->then(function($conn) {
20+ $conn->on('message', function($msg) use ($conn) {
21+ echo "Received: {$msg}\n";
22+ $conn->close();
2723 });
28- ```
2924
30- ---
25+ $conn->send('Hello World!');
26+ }, function ($e) {
27+ echo "Could not connect: {$e->getMessage()}\n";
28+ });
29+ ```
3130
3231#### Classes
3332
@@ -57,31 +56,29 @@ A more in-depth example using explicit interfaces: Requesting sub-protocols, and
5756``` php
5857<?php
5958
60- require __DIR__ . '/vendor/autoload.php';
61-
62- $loop = \React\EventLoop\Factory::create();
63- $reactConnector = new \React\Socket\Connector($loop, [
64- 'dns' => '8.8.8.8',
65- 'timeout' => 10
66- ]);
67- $connector = new \Ratchet\Client\Connector($loop, $reactConnector);
68-
69- $connector('ws://127.0.0.1:9000', ['protocol1', 'subprotocol2'], ['Origin' => 'http://localhost'])
70- ->then(function(\Ratchet\Client\WebSocket $conn) {
71- $conn->on('message', function(\Ratchet\RFC6455\Messaging\MessageInterface $msg) use ($conn) {
72- echo "Received: {$msg}\n";
73- $conn->close();
74- });
75-
76- $conn->on('close', function($code = null, $reason = null) {
77- echo "Connection closed ({$code} - {$reason})\n";
78- });
79-
80- $conn->send('Hello World!');
81- }, function(\Exception $e) use ($loop) {
82- echo "Could not connect: {$e->getMessage()}\n";
83- $loop->stop();
59+ require __DIR__ . '/vendor/autoload.php';
60+
61+ $reactConnector = new \React\Socket\Connector([
62+ 'dns' => '8.8.8.8',
63+ 'timeout' => 10
64+ ]);
65+ $loop = \React\EventLoop\Loop::get();
66+ $connector = new \Ratchet\Client\Connector($loop, $reactConnector);
67+
68+ $connector('ws://127.0.0.1:9000', ['protocol1', 'subprotocol2'], ['Origin' => 'http://localhost'])
69+ ->then(function(\Ratchet\Client\WebSocket $conn) {
70+ $conn->on('message', function(\Ratchet\RFC6455\Messaging\MessageInterface $msg) use ($conn) {
71+ echo "Received: {$msg}\n";
72+ $conn->close();
73+ });
74+
75+ $conn->on('close', function($code = null, $reason = null) {
76+ echo "Connection closed ({$code} - {$reason})\n";
8477 });
8578
86- $loop->run();
79+ $conn->send('Hello World!');
80+ }, function(\Exception $e) use ($loop) {
81+ echo "Could not connect: {$e->getMessage()}\n";
82+ $loop->stop();
83+ });
8784```
0 commit comments