PHP code example of relaystacks / laravel-conduit

1. Go to this page and download the library: Download relaystacks/laravel-conduit library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

relaystacks / laravel-conduit example snippets


'connections' => [
    'conduit' => [
        'driver'      => 'conduit',
        'socket_path' => env('CONDUIT_SOCKET_PATH'),
        'secret'      => env('CONDUIT_SECRET'),
        'timeout'     => env('CONDUIT_TIMEOUT', 2),
    ],
],

class OrderShipped implements ShouldBroadcast
{
    public function __construct(public Order $order) {}

    public function broadcastOn(): array
    {
        return [new PrivateChannel('orders.' . $this->order->user_id)];
    }

    public function broadcastWith(): array
    {
        return ['order_id' => $this->order->id];
    }
}

Broadcast::channel('news', function () {
    return true;
});

Broadcast::channel('orders.{userId}', function (User $user, int $userId) {
    return $user->id === $userId;
});

Broadcast::channel('chat.{roomId}', function (User $user, int $roomId) {
    return ['id' => $user->id, 'name' => $user->name];
});

Broadcast::channel('monitoring', function (?User $user) {
    if ($user) {
        return ['id' => $user->id, 'name' => $user->name];
    }

    $guestId = random_int(100000, 999999);

    return ['id' => 'guest-' . $guestId, 'name' => (string) $guestId];
});

// Private — must return true/false
Broadcast::channel('orders.{userId}', function (User $user, int $userId) {
    return $user->id === $userId;
});

// Presence — must return an array with user info
Broadcast::channel('chat.{roomId}', function (User $user, int $roomId) {
    return ['id' => $user->id, 'name' => $user->name];
});

Laravel Event (ShouldBroadcast)
    │
    ▼
ConduitBroadcaster (this package)
    │
    ▼
UnixSocketTransport (relaystacks/conduit-php)
    │  JSON + optional HMAC signing
    ▼
Unix domain socket (/home/user/laravel.sock)
    │
    ▼
conduit-echo (Node.js relay)
    │  Socket.IO
    ▼
Browser (Laravel Echo client)
bash
php artisan vendor:publish --tag=conduit-config