概要
ライブストリーミング業務において、キャスターと視聴者間のリアルタイムなインタラクション、例えば、弾幕、会話・チャットなどのニーズがあって、導入方法は比較的複雑です。本文では、Tencent CloudのIMをベースにし、ライブストリーミング中に弾幕、会話・チャット、商品プッシュなどを実装する方法、及び実装中に発生しうる問題や注意事項などを説明します。これにより、開発者たちが業務を迅速に理解しニーズを実現することを図ります。
重要機能の説明
機能 |
説明 |
ライブストリーミング弾幕、ギフト、「いいね」 |
億以上のメッセージの同時送信をサポートし、優れたライブストリーミングチャットのインタラクティブな体験を手軽に構築できますす。 |
シングルチャット、グループチャットなどライブストリーミング中の複数のチャットモード |
ユーザが話したい内容を送信し、同じチャットルームにいる他のメンバーからメッセージを受信できます。文字、画像、音声、ショート動画など複数のメッセージタイプをサポートし、リアルタイムでメッセージをプッシュするため、ユーザの定着率と活躍度を効果的に高めます。 |
ライブコマース商品プッシュ |
ライブコマースシーンでは、キャスターがある商品を紹介する時、画面下側の商品欄を即座に現在の商品に更新し、ライブストリーミングの全ユーザーに新商品入荷を通知する必要があります。新商品入荷メッセージは、通常、アシスタントによって送信されます。 |
ライブルームブロードキャスト |
ライブルームでのシステム公告に相当します。システム管理者がブロードキャストメッセージを送信すると、SDKAppID配下のすべてのライブルームでそのメッセージを受信します。 |
導入方法
ステップ1:アプリケーションの作成
Tencent Cloudを使用してライブルームを構築するには、下図に示すように、まずコンソールでIMアプリケーションを作成してください。
ステップ2:設定
準備作業のステップ1で作成したアプリケーションは体験版であり、開発段階で使用に向いています。本番環境のユーザはご自身のニーズに応じて、プロフェッショナル版またはフラッグシップ版を使用してください。バージョン間の違いについては、IM価格ドキュメントをご参照ください。
ライブストリーミングのシーンでは、アプリケーションの作成以外にもいくつかの追加設定が必要です。
- キーを使用したUserSigの計算
IMのアカウントシステムでは、ユーザログインに必要なパスワードはユーザのサーバーでIMが提供するキーを使用して計算されます。詳しくは、ドキュメントUserSigの計算をご参照ください。下図に示すように、開発段階では、クライアントでの開発に支障がないよう、コンソールでのUserSigの計算を行うこともできます。
- 管理者アカウントの設定
ライブストリーミング中に、管理者がライブルームに対してメッセージの送信、違反ユーザのミュート(強制退室)などを行う必要がある場合があります。この場合はIMサーバーAPIを使用してください。サーバー側のAPIを呼び出すには、IM管理者アカウントの作成を行ってください。IMはデフォルトでUserIDがadministratorのアカウントを開発者に提供します。開発者は運用シーンに応じて複数の管理者アカウントを作成できます。IMで最大5つの管理者アカウントを作成できることにご注意ください。
- コールバックアドレスの設定およびコールバックのアクティブ化
ライブルームでの弾幕抽選、メッセージ集計、センシティブコンテンツチェックなどを実装する時、IMのコールバックモジュールを使用する必要があります。つまり、運用シーンによって、IMバックエンドで開発者の業務バックエンドをコールバックすることがあります。開発者は下図のように、HTTPのインターフェースを提供し、コンソール > コールバック設定モジュールに設定するだけでよいです。
ステップ3:クライアントSDKの統合
準備作業をすべて完了した後、IMとTRTCのクライアントSDKをユーザのプロジェクトに統合する必要があります。開発者はご自身のニーズに応じて、統合ソリューションを選択することができます。詳しくは、クイックインテグレーションシリーズドキュメントをご参照ください。
続いて、ライブルームでよく使用される機能を整理し、開発者のご参照用としてベストプラクティスソリューションを提供します。関連の実装コードも併せてご参照ください。
ステップ4:ライブルームに関する重要機能の開発ガイド
- グループライプを選択します
ライブストリーミングのシーンでは、ユーザチャットエリアには次のような特徴があります:
- ユーザのグループへの出入りが頻繁で、これらのグループのセッション情報(未読、lastMessageなど)を管理する必要がない
- ユーザが自動的にグループに参加することを審査する必要がない
- ユーザの発言は一時的であり、グループの過去のチャット記録をフォローしない
- グループの人数は一般的に比較的多い
- グループメンバー情報を保存しなくてもよい
そのため、IMのグループ特徴に基づいて、ここではAVChatRoomをライブルームのグループタイプとして選択します。IMライブストリーミンググループ(AVChatRoom)には、次の特徴があります。
- 人数制限なし、数千万人のインタラクティブライブストリーミングを実現可能。
- 全オンラインユーザへのメッセージプッシュ(グループシステム通知)をサポート。
- グループへ参加を申請後に、管理者に承認されずにそのまま参加可能。
説明:
IM Webでは、同一ユーザは同じ時間に1つのAVChatRoomにしか入れないという制限があります。IMの複数端末へログインのシーンでは、ユーザのログイン端末1を使用しライブルームAでライブストリーミングを視聴している場合、コンソール で複数端末へログインを許可するよう設定した状態で、このユーザのログイン端末2を使用しライブルームBに入って視聴すると、ログイン端末1でライブルームAから強制退出されます。
- ライブルームの弾幕、ギフト、「いいね」を設定します
- 弾幕
AVChatRoomは、弾幕、ギフト、「いいね」など複数のメッセージタイプをサポートし、優れたライブストリーミングチャットのインタラクティブな体験を手軽に構築できます。
弾幕メッセージは、IMのAPIを使用しテキストまたはカスタムメッセージを作成できます。メッセージを正常に送信した後、ライブループに弾幕を表示する方法に応じて、 新規メッセージのコールバックを受信し、ライブルームの新しいメッセージのテキストやカスタマイズなどのプロパティを取得します。その後、異なるUIを使用してスクリーンに表示します。
- ギフト
- クライアントの短時間接続リクエストが自身の業務サーバーに届き、課金ロジックに関与します。
- 課金後、送信者は「XXXがXXX(ギフト)を贈りました」というメッセージを直接見ることができます。(これは送信者が自分で贈ったギフトを確認できるようにするためです。メッセージの量が多い場合は、破棄ポリシーがトリガーされる可能性があります)
- 料金決済後、サーバーのインターフェースを呼び出してカスタムメッセージ(ギフト)を送信します。
- ギフトを連続して贈る場合、メッセージをマージする必要があります。
- ギフトの数を選択して贈る場合、例えば99個のギフトを選択した場合、メッセージを1通送信し、パラメータにギフトの数である99を渡します。
- ギフトを連続クリックで贈り、贈るギフトの数がわからない場合、20個(具体的な数は自分で調整)ごとに、または連続クリック時間が1秒を超えると1通送信することができます。このロジックでは、99個のギフトを連続クリックで贈る場合、最適化によって最終的に5通のメッセージを送信するだけで済みます。
- 「いいね」
- ギフトとは異なり、「いいね」は課金の必要がない場合が多いため、通常は端末から直接送信します
- サーバ側でカウントする必要がある「いいね」メッセージについては、クライアントでトラフィック節約を行った後、クライアントで「いいね」回数をカウントし、短時間内の複数の「いいね」メッセージをマージし、メッセージを1回だけ送信します。業務側サーバーでメッセージ送信前コールバックから「いいね」回数を取得してカウントします。
- カウントの必要がない「いいね」メッセージについては、ステップ2のロジックと同様に、業務側がクライアントで「いいね」メッセージのトラフィックを節約してから送信し、メッセージ送信前コールバックからカウントする必要はありません。
ライブコマース商品プッシュ
キャスターがある商品を紹介する時、画面下側の商品欄を即座に現在の商品に更新し、ライブストリーミングの全ユーザーに新商品入荷を通知する必要があります。新商品入荷メッセージは、通常、アシスタントによって送信されます。管理者がグループカスタムフィールドを変更することで、新商品入荷の通知を実装することをお薦めします。具体的な手順は以下のとおりです:
グループカスタムフィールドの追加
- [IMコンソール](https://console.tencentcloud.com/im)にログインします。対象のアプリケーションカードをクリックし、左側のナビゲーション欄で**機能設定** > グループ設定を選択します。
- グループカスタムフィールドページで、グループ範囲カスタムフィールドの追加をクリックします。
- ポップアップしたグループ範囲カスタムフィールドのダイアログボックスに、フィールド名を入力し、グループタイプとそれに対応する読み取り/書き込み権限を設定します。
説明:
- フィールド名は、英数字およびアンダーバー(_)のみで構成され、数字で始めることはできません。長さは16文字以下とします。
- グループカスタムフィールド名は、グループメンバーカスタムフィールド名と同じにすることはできません。
- 「グループ範囲カスタムフィールド」を追加すると、追加したグループタイプの読み取り/書き込み権限だけを変更できること、このフィールドを削除できないこと、追加したグループタイプを再選択または削除できないことを了解しています。にチェックを入れ、OKをクリックして設定を保存します。
説明:
グループ範囲カスタムフィールドは設定して約10分後に反映されます。
グループカスタムフィールドの使用
アシスタントはグループ管理者のロールで、適時、 グループ基本プロファイルの変更REST APIを呼び出し、対応するグループカスタムフィールドを更新し、ライブルームの新商品入荷通知とライブストリーミング状態変更通知を送信します。
ライブルームブロードキャスト
ブロードキャスト機能はライブルームでのシステム公告に相当します。ただし、公告と異なり、ブロードキャスト機能はメッセージです。システム管理者がブロードキャストメッセージを送信すると、SDKAppID配下のすべてのライブルームでそのメッセージを受信します。
ブロードキャスト機能は現在フラッグシップ版で提供され、コンソールで有効にしてください。業務バックグラウンドでブロードキャストメッセージを送信することについては、ライブストリーミンググループブロードキャストメッセージをご参照ください。
説明:
開発者が使用しているバージョンがフラッグシップ版ではない場合、代わりにサーバーからグループカスタムメッセージを送信することで、同じ機能を実現できます。
関連ドキュメント
その他のライブルーム機能、例えば、ライブルームのユーザ身分・レベルの実装、ライブルーム履歴情報の取得、ライブルームのオンライン視聴者数の表示も使用する必要がある場合、ライブルーム各機能の開発ガイドをご参照ください。
この記事はお役に立ちましたか?