Laravel で データベースの内容に従って ONLINE を出す。
動画の配信のシステムを作っています。オープンソースでも販売する予定ですので、興味のある方はご連絡ください。
このシステムで、配信者がONLINE になったときに画面上にオンラインと出したいと思います。今回のシステムでは、データベースにオンライン情報が出るので、ただ出るだけであれば、そのデータを参照して表示すればいいのですが、今回はリアルタイムに画面にステイした状態でも情報を変更したいと思います。
この右上を変更したいと思います。
方法としては2種類の方法があると思います。
- vuejs を使って、リアルタイムに更新させる。
- javascript で タイマー処理を行い、データベースから参照し表示を変化させる。
今回は、2のjavascript で対応したいと思います。
Laravel の bladeの中に、表示させる位置を記載します。
<div id="ajaxreload">
ライブ配信がオンラインになるまでお待ちください。
</div>
オンライン用のbladeを作成して、ここの部分に表示するhtmlを作成します。
自分の場合、viewonline.blade.php で作成しました。
@inject('online', 'App\Services\OnlineService')
@if($online->get($id)->flag==1)
<div class="col-10 offset-1">
<a href="https://xxxx.xxxx.xx:8443/xxxx?room={{$id}}" class="btn btn-info w-100" style="border-radius: 30px;font-size:18px;font-family: 'Noto Sans JP',sans-serif;font-weight:700;">ライブ配信を視聴</a>
</div>
@else
<div class="col-10 offset-1">
ライブ配信がオンラインになるまでお待ちください。
</div>
@endif
このプログラムの場合、inject で データベースのオンラインを参照するフラグを取得しています。いろんな方法があるので、それぞれの方法で対応してください。