テレワークで日本を変える|Web会議・テレビ会議(TV会議)のブイキューブ

テレワークで日本を変える|テレビ会議(TV会議)・Web会議・電話会議のブイキューブ

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

  • WebRTC
  • Agora.io

概要

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

開発環境

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を利用しています。

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);

Agora SDK イメージ
Agora SDK

大規模・安価・すぐに使える
ライブ配信・ビデオ通話・音声通話SDK

 

先頭へ戻る