<?php
Swoole\WebSocket\Server->on (string $event, callable $callback)
The event name
callback function
if success, it returns TRUE, otherwise it returns FALSE.
Register callback function for the event.
Swoole\WebSocket\Server->on('start', fn)
Swoole\WebSocket\Server->on('open, fn)
Swoole\WebSocket\Server->on('handshake, fn)
Swoole\WebSocket\Server->on('message, fn)
Swoole\WebSocket\Server->on('close, fn)
Swoole\WebSocket\Server->on('request, fn)
The callback function on request
in Swoole\WebSocket\Server
is same as the request
callback function in HTTP server, if it is not implemented, the server responses HTTP 400 error.
<?php
use Swoole\WebSocket\Server;
use Swoole\Http\Request;
use Swoole\WebSocket\Frame;
$server = new Server("0.0.0.0", 9502);
$server->on("start", function (Server $server) {
echo "Swoole WebSocket Server is started at http://127.0.0.1:9502\n";
});
$server->on('open', function(Server $server, Swoole\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->start();