xp-forge/websockets

WebSockets for the XP Framework

v4.0.0 2024-10-05 14:21 UTC

This package is auto-updated.

Last update: 2024-11-05 18:14:25 UTC


README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.4+ Supports PHP 8.0+ Latest Stable Version

Example

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

See also