Sockudo
Server SDKs

PHP

Use the PHP server SDK for Laravel-compatible publishing, auth, state, history, and push notifications.

Install

composer require sockudo/sockudo-php-server

Configure

use Sockudo\Sockudo;

$sockudo = new Sockudo([
    'app_id' => 'app-id',
    'key' => 'app-key',
    'secret' => 'app-secret',
    'host' => '127.0.0.1',
    'port' => 6001,
    'useTLS' => false,
]);

Publish

$sockudo->trigger('orders', 'order.created', ['id' => 'ord_123'], [
    'idempotency_key' => 'order-created-ord_123',
]);

$sockudo->triggerBatch([
    ['channel' => 'orders', 'name' => 'order.created', 'data' => ['id' => 'ord_124']],
    ['channel' => 'orders', 'name' => 'order.paid', 'data' => ['id' => 'ord_124']],
]);

Auth

$private = $sockudo->authorizeChannel('private-orders', $socketId);

$presence = $sockudo->authorizePresenceChannel(
    'presence-lobby',
    $socketId,
    'user-42',
    ['name' => 'Ada']
);

Laravel broadcasting

'pusher' => [
    'driver' => 'pusher',
    'key' => env('SOCKUDO_APP_KEY'),
    'secret' => env('SOCKUDO_APP_SECRET'),
    'app_id' => env('SOCKUDO_APP_ID'),
    'options' => [
        'host' => env('SOCKUDO_HOST', '127.0.0.1'),
        'port' => env('SOCKUDO_PORT', 6001),
        'scheme' => 'http',
        'useTLS' => false,
    ],
],

Push notifications

$sockudo->activateDevice([
    'deviceId' => 'web-device-1',
    'clientId' => 'user-42',
    'platform' => 'webpush',
    'providerToken' => $subscription,
]);

$sockudo->upsertChannelPushSubscription([
    'deviceId' => 'web-device-1',
    'clientId' => 'user-42',
    'channel' => 'orders',
]);

$accepted = $sockudo->publishPush([
    'recipients' => [
        ['type' => 'channel', 'channel' => 'orders'],
    ],
    'payload' => [
        'title' => 'Order updated',
        'body' => 'Order ord_123 is packed',
    ],
    'idempotency_key' => 'push-order-ord_123-packed',
]);

$status = $sockudo->getPublishStatus($accepted->publish_id);

Push publishing is asynchronous by default. Use status APIs and provider callbacks for delivery diagnostics.

On this page