2022年05月16日

Agora.io SDKを利用したライブコマースサンプル(WebRTC版)

※2020年の記事です。

 

2018年頃からEC市場でライブコマースをよく見かけるようになりました。
ライブコマースの開発を希望するお客様が増えてきた為、簡易なサンプルを実装しました。
サンプルの方針として、フレームワークを使用すると移植しにくさがあると思いますので、各言語ベタでコーディングしています。

Githubに公開しています

お役立ち資料ダウンロード  【図解】システム開発のお手伝い  ブイキューブのソリューションアーキテクトが、寄り添います! 各種ライブ配信システムのアーキテクチャについて わかりやすい構成図にてご紹介! 無料ダウンロード

開発環境

macOS Mojave 10.14.1
VisualStudioCode 1.29.1
Chrome 72.0.3626.121
AgoraVideoSDK for Web 2.8.0
PHP 5.5.26
MySQL 5.5.42

機能一覧

・ライブ作成
・ライブ配信(Web SDK)
・ライブ視聴(Web SDK)
・チャット(Signaling SDK)
・ハート送信(Signaling SDK)
・延べ視聴人数/ハート数のリアルタイム表示
・同時視聴数の記録(RESTFull API)

実装のポイント

同時視聴数の記録

実装の手法は様々です。要件に合わせて異なってきます。
今回は、Channelに接続している人=視聴しているとしてagora.ioが提供しているRESTFull APIを利用しています。

https://docs.agora.io/en/Agora%20Platform/dashboard_restful_communication?platform=All%20Platforms

put_live_count.php
        $channelName = BASE_CHANNEL_NAME . $_GET['live_id'];
            $url = sprintf("%s/%s/%s/%s/%s",REST_API_URL,"channel","user",APP_ID,$channelName);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_USERPWD, REST_API_USER . ":" . REST_API_PASS);
            curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            $json = curl_exec($ch);
            curl_close($ch);
            $data = json_decode($json, true);
            $count = 0;
            if($data['success'] && isset($data['data']['audience_total'])){
                $count = $data['data']['audience_total'];
            }
            $sql = sprintf("insert into session (live_id,count,created_at) value(%s,%s,now())",$pdo->quote($_GET['live_id']),$pdo->quote($count));
            $pdo->query($sql);
    
    
ガイドブックダウンロード  【大充実】通話・配信SDK「Agora」ガイドブック  通話・配信サービス開発や、配信技術のリプレイスを検討中の方、必見の内容です。 Agora SDKの特徴から活用例まで徹底解説! 無料ダウンロード
ブイキューブ

執筆者ブイキューブ

Agoraの日本総代理店として、配信/通話SDKの提供だけでなく、導入支援から行い幅広いコミュニケーションサービスに携わっている。

関連記事

先頭へ戻る