summaryrefslogtreecommitdiffstats
path: root/vendor/textalk/websocket/docs/Examples.md
blob: 7dd4e0c9c1e479396a4d531c8697ca377a95ab07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
[Client](Client.md) • [Server](Server.md) • [Message](Message.md) • Examples • [Changelog](Changelog.md) • [Contributing](Contributing.md)

# Websocket: Examples

Here are some examples on how to use the WebSocket library.

##  Echo logger

In dev environment (as in having run composer to include dev dependencies) you have
access to a simple echo logger that print out information synchronously.

This is usable for debugging. For production, use a proper logger.

```php
namespace WebSocket;

$logger = new EchoLogger();

$client = new Client('ws://echo.websocket.org/');
$client->setLogger($logger);

$server = new Server();
$server->setLogger($logger);
```

An example of server output;
```
info     | Server listening to port 8000 []
debug    | Wrote 129 of 129 bytes. []
info     | Server connected to port 8000 []
info     | Received 'text' message []
debug    | Wrote 9 of 9 bytes. []
info     | Sent 'text' message []
debug    | Received 'close', status: 1000. []
debug    | Wrote 32 of 32 bytes. []
info     | Sent 'close' message []
info     | Received 'close' message []
```

## The `send` client

Source: [examples/send.php](../examples/send.php)

A simple, single send/receive client.

Example use:
```
php examples/send.php --opcode text "A text message" // Send a text message to localhost
php examples/send.php --opcode ping "ping it" // Send a ping message to localhost
php examples/send.php --uri ws://echo.websocket.org "A text message" // Send a text message to echo.websocket.org
php examples/send.php --opcode text --debug "A text message" // Use runtime debugging
```

## The `echoserver` server

Source: [examples/echoserver.php](../examples/echoserver.php)

A simple server that responds to recevied commands.

Example use:
```
php examples/echoserver.php // Run with default settings
php examples/echoserver.php --port 8080 // Listen on port 8080
php examples/echoserver.php --debug //  Use runtime debugging
```

These strings can be sent as message to trigger server to perform actions;
* `exit` - Server will initiate close procedure
* `ping` - Server will send a ping message
* `headers` - Server will respond with all headers provided by client
* `auth` -  Server will respond with auth header if provided by client
* For other sent strings, server will respond with the same strings

## The `random` client

Source: [examples/random_client.php](../examples/random_client.php)

The random client will use random options and continuously send/receive random messages.

Example use:
```
php examples/random_client.php --uri ws://echo.websocket.org // Connect to echo.websocket.org
php examples/random_client.php --timeout 5 --fragment_size 16 // Specify settings
php examples/random_client.php --debug //  Use runtime debugging
```

## The `random` server

Source: [examples/random_server.php](../examples/random_server.php)

The random server will use random options and continuously send/receive random messages.

Example use:
```
php examples/random_server.php --port 8080 // // Listen on port 8080
php examples/random_server.php --timeout 5 --fragment_size 16 // Specify settings
php examples/random_server.php --debug //  Use runtime debugging
```