use websocket\Listeners;
class Imitator extends Listeners {
public function serve($events) {
return [
'/echo' => function($conn, $payload) {
$conn->send('You said: '.$payload);
}
];
}
}
Run it using:
$ xp -supervise ws Imitator
@peer.ServerSocket(Resource id #138 -> tcp://0.0.0.0:8081))
Serving Imitator(dev)[] > websocket.logging.ToConsole
# ...
To connect to this server, use the following:
use util\cmd\Console;
use websocket\WebSocket;
$s= new WebSocket('ws://localhost:8081/echo';
$s->connect();
$s->send('Hello');
Console::writeLine('<<< ', $s->receive());
On the JavaScript side, open the connection as follows:
var ws = new WebSocket('ws://localhost:8081/echo');
ws.onmessage = (event) => console.log(event.data);
ws.send('Hello'); // Will log "You said: Hello" to the console