PHP code example of rajibul / lolipop-sfu

1. Go to this page and download the library: Download rajibul/lolipop-sfu 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/ */

    

rajibul / lolipop-sfu example snippets


use Rajibul\LolipopSfu\Facades\Lolipop;
use Rajibul\LolipopSfu\Enums\Role;

class LivestreamController extends Controller
{
    public function joinRoom(Request $request, string $roomId)
    {
        $user = $request->user();
        $isHost = $user->isHostOf($roomId);

        $payload = Lolipop::generateJoinPayload(
            roomId: $roomId,
            peerId: "user_{$user->id}",
            role: $isHost ? Role::HOST : Role::VIEWER,
            meta: [
                'name'   => $user->name,
                'avatar' => $user->avatar_url,
            ]
        );

        return response()->json([
            'status' => 'success',
            'data'   => $payload,
        ]);
    }
}

use Rajibul\LolipopSfu\Facades\Lolipop;

class PKBattleController extends Controller
{
    public function startBattle(Request $request)
    {
        $battle = Lolipop::startBattle(
            hostA: 'host_101',
            roomA: 'room_101',
            hostB: 'host_202',
            roomB: 'room_202',
            durationSec: 180,    // 3-minute battle
            punishmentSec: 60    // 1-minute punishment
        );

        return response()->json($battle);
    }
}

use Rajibul\LolipopSfu\Facades\Lolipop;

class GiftController extends Controller
{
    public function send(Request $request, string $roomId)
    {
        $user = $request->user();

        $result = Lolipop::sendGift(
            roomId: $roomId,
            senderId: "user_{$user->id}",
            senderName: $user->name,
            giftId: 'rocket_99',
            giftName: 'Space Rocket',
            giftValue: 100, // 100 points
            receiverHostId: 'host_101'
        );

        return response()->json([
            'status' => 'success',
            'data'   => $result,
        ]);
    }
}

use Rajibul\LolipopSfu\Facades\Lolipop;

Lolipop::broadcastMessage(
    roomId: 'room_101',
    senderId: 'system',
    senderName: 'Admin',
    message: 'Stream rule notice: Be respectful in the live chat!',
    level: 'warning'
);

use Rajibul\LolipopSfu\Facades\Lolipop;

if (Lolipop::getHealth()) {
    // SFU Media Server is healthy and accepting connections
}
bash
php artisan vendor:publish --tag="lolipop-config"