OpenSwoole\WebSocket\Server->on(event, callback)

Latest version: pecl install openswoole-22.1.2 | composer require openswoole/core:22.1.5

Declaration

<?php OpenSwoole\WebSocket\Server->on (string $event, callable $callback)

Parameters

event

The event name to set a callback for

callback

Callable function for the server event type

Return

If success, it returns true, otherwise it returns false

Description

Register the callback function for the WebSocket Server event.

Event Types

The callback function on request in OpenSwoole\WebSocket\Server is same as the request callback function in the OpenSwoole HTTP server, if it is not implemented, the server will respond with a HTTP 400 error. Read more about it here.

Example

<?php

use OpenSwoole\WebSocket\Server;
use OpenSwoole\Http\Request;
use OpenSwoole\WebSocket\Frame;

$server = new Server("127.0.0.1", 9501);

$server->on("Start", function(Server $server)
{
    echo "OpenSwoole WebSocket Server started at 127.0.0.1:9501\n";
});

$server->on('Open', function(Server $server, OpenSwoole\Http\Request $request)
{
    echo "Connection open: {$request->fd}\n";

    $server->tick(1000, function() use ($server, $request)
    {
        $server->push($request->fd, json_encode(["hello", time()]));
    });
});

$server->on('Message', function(Server $server, Frame $frame)
{
    echo "Received message: {$frame->data}\n";

    $server->push($frame->fd, json_encode(["hello", time()]));
});

$server->on('Close', function(Server $server, int $fd)
{
    echo "Connection close: {$fd}\n";
});

$server->on('Disconnect', function(Server $server, int $fd)
{
    echo "Connection disconnect: {$fd}\n";
});

$server->start();
Last updated on September 1, 2022