FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
インタラクティブなライブブロードキャストには、サーバー、教師クライアント、iOS / Android学生クライアント、およびWeb / Wap学生クライアントが含まれます。 この記事では、Maimaiの対話プロセス、フロントエンドでのMaimaiモジュールの設計、およびフロントエンドでの対話型コンポーネントとチャットコンポーネントの設計に焦点を当てます。 チャットルーム自体のチャット機能を実現するために、Yunxin IM SDKへのアクセスは主にApiコールパッケージを介して実現されるため、詳細には触れません。
システムを設計する前に、まず次の質問を検討する必要があります。
•各エンドの要件定義と機能分割、各エンドがどのように相互作用するか
•両端間の合意
•クライアントはマイクと教師に受信を依頼します
•クライアントがインタラクティブなライブ放送室に入った後のインタラクティブな情報の同期
上記の質問で、最初に私たちが信頼できるサービスを整理しましょう。 NetEaseCloudが提供する以下のサービスを下図に示します。 独自のシステム要件の設計と組み合わせることで、IMとインタラクティブライブブロードキャストの機能をすばやく統合できます。
•YunxinIMサービスは、基本的なインスタントメッセージング機能の完全なセットを提供します。これにより、インスタントメッセージングとリアルタイムネットワーク機能を企業独自のアプリケーションにすばやく統合できます。
•Yunxinのインタラクティブなライブブロードキャスト機能は、ホストと視聴者の間のリアルタイムの対話をサポートします。
フレームワーク
私たちの基本的なニーズは、主に次のXNUMXつの部分です。
1.学生はアプリクライアントのチャットルームに入り、小麦のリクエストを開始できます。
2.教師側では、生徒のリクエストを承認または拒否できます。
3.教師が生徒の要求に同意した後、生徒はライブ放送室に入って対話することができます。
次の図に示すように、要件を組み合わせて、次の基本的なマイクリクエスト、接続マイク、およびインタラクティブプロセスを整理します。 さまざまなスタイルのデータフローは、さまざまな合意を表しています。
追加の概念は次のとおりです。
1.クライアントYunxinIMのSDK、クライアントはYunxinIMを介して教師にP2Pメッセージを送信します
2.クライアントインタラクティブライブブロードキャストSDK、クライアントはインタラクティブライブブロードキャストに接続します
3.教師側のYunxinSDKは、p2pメッセージを受け入れます
4.教師側のインタラクティブライブブロードキャストSDK、クライアント側のライブブロードキャストと対話する
5.Web上のYunxinIMのSDK、メッセージの送受信
6.メッセージ、および両端から送信されるメッセージのデータ構造をカスタマイズします
設計と実装
実装このセクションでは、主に、前のセクションの概要で説明した教師クライアントとWeb / Wap学生クライアントの実装を紹介します。 これには主に、プロセスの改良、教師のIMモジュール、Web学生の端末モジュール、構成、利点、および既存の問題が含まれます。
プロセスの改良
まず、先生の終わりの実装を紹介し、下図の番号順にいくつかの詳細を補足説明します。 教師側にはXNUMXつの主要な部分があります。XNUMXつはこの記事では教師のネイティブと呼ばれるネイティブであり、もうXNUMXつはこの記事では教師IMと呼ばれるWebページです。 教師のネイティブと教師のIMは、jsbridgeとカスタムメッセージを介して通信します。
まず、教師ネイティブと教師IMの間のjsbridge通信を次のように整理します。
-notifyQueueChange
-notifyボリューム
-notifyカスタムメッセージ
-アップデートをチェックする
-notifyLiveStatus
上記のフローチャートを組み合わせて、プロセスの詳細な説明を作成します。
1.クライアントの初期化
両端は、サーバーを要求することにより、統一されたチャットルームアドレスを取得します
2.教師の初期化
教師IMが初期化されると、サーバー要求(getPresenterLiveInfo)を介してチャットルームアドレスを取得し、チャットルームシングルトンを取得し、ネイティブチャットルームの準備ができたことを教師に通知し、インタラクティブなライブブロードキャストデータを取得します。
3.小麦を招待するプロセス
•クライアントは、ネイティブの教師にp2pメッセージを送信します。 教師ネイティブはjsbridgeを使用して教師IMのnotifyCustomMsgを呼び出し、教師IMはそれが維持するMai要求の待機キューを更新します。
•教師のIMはクリックして同意または拒否し、教師のネイティブはメッセージを介して通知され、教師のネイティブはP2Pを介してクライアントに要求を通知します。
•クライアントはインタラクティブライブブロードキャストSDKを使用し、マイクをライブルームに接続し、インタラクティブライブブロードキャストSDKを介してネイティブの教師にメッセージを送信します。
•教師ネイティブはnotifyQueueChangeメソッドを呼び出して、教師IMのリストを更新します
•教師IM、サーバーのアップロードおよびダウンロードキューの更新、カスタムメッセージの送信(im-sdk)、および各クライアントに通知するためのブロードキャストを非同期的に要求(informServer)します。
教師IMモジュール
次の図に示すように、フローチャートと上記のプロセスの詳細な説明を組み合わせて、フロントエンドモジュールを設計および分割します。
ここで、LivePcChatはTabのチャットコンポーネント、LiveInteractivePresenterはインタラクティブ操作を処理するコンポーネント、XXcacheは対応するデータレイヤー操作をカプセル化するコンポーネントです。 特定のコンポーネントインスタンス、呼び出し、データ要求、および処理プロセスは、以下のシーケンス図に示されているとおりです。
Web学生モジュール
Web / Wap学生端末の場合、Web / Wap学生端末自体はまだ乙女の機能を開発していないためです。 ここでは、Web学生端末を例として取り上げ、インタラクティブリストとチャットインタラクションでWeb / Wap学生端末の実現を紹介します。 それ自体のチャットルーム部分と教師側のチャットルームはチャットコンポーネントを再利用するため、モジュールも最初にここで分割されます。 教師側のコンポーネントの分割を参照して、教師側と学生側で再利用されたコンポーネントの一部を比較できます。 次の図は、Web学生側の分割を示しています。
下の表の比較から、Yingmaiに関連する処理ロジックに加えて、教師側とWeb学生側のIMの他の機能を再利用できることがわかります。
インタラクティブライブブロードキャストは、元のライブブロードキャストに基づく反復であるため、ここでは、さまざまな教育製品ラインでのインタラクティブライブブロードキャストの構成可能性を確保する必要があります。 ここで説明する構成は、他のモジュールの構成および教育用パブリックコンポーネントプール内のコンポーネントアクセスと同様です。 また、教育用の一般的なコンポーネントのキャッシュベースにも依存しています。キャッシュベースは、ライブページまたはプロジェクトの単一ページが読み込まれるときに構成で読み取られます(組織の背景)構成、ワンキー構成。
長所と短所の分析
この設計を使用する利点は次のとおりです。
1.すべてのサーバーリクエストはWebページを介して送信されるため、教師のメンテナンスコストが削減されます。
2.モジュールの構成可能性。 さまざまなビジネスラインで、インタラクティブなライブブロードキャストに接続するかどうかを決定するように構成できます。
3.コンポーネントはきめ細かいです。 さまざまなモジュールで、教師側はチャットコンポーネントとインタラクティブコンポーネント、マイクコンポーネントにアクセスでき、生徒側はインタラクティブリストコンポーネントにのみアクセスできます。
4.これは、既存のYunxin SDKによって実装された機能に大きく依存しており、比較的短時間で要件を満たすことができます。
問題
1. Yingmaiのプロセスは、複数のエンドを含み、各エンドでのデバッグが時間の無駄であるため、より複雑です。 これは、この記事を整理する目的でもあります。 各エンドのプロセスを理解した後、各エンドは最初にデバッグ中に問題のエンドを見つけることができ、次に問題を特定のリンクでターゲットを絞った方法で見つけることができます。
2.元のイテレーションに基づいて実行されるため、多くのコンポーネントは教育用標準コンポーネントにカプセル化されていませんが、明確なロジックを前提として、後続のイテレーションで最適化できます。
3.フロントエンドの実装方法を最適化します。
まとめる
この記事では、インタラクティブライブブロードキャストの両端のロジックを整理して、後でインタラクティブライブブロードキャストプロセスを理解しやすくします。 クライアントと教師にとって、フロントエンドによって提供されるインターフェースとメッセージの実装を理解することができます。 後続の別のプロジェクトでインタラクティブライブブロードキャストモジュールにアクセスする必要がある場合は、すばやくアクセスしてデバッグできると同時に、上記で発生した既存の問題をさらに最適化できます。
|
サプライズを取得するには、メールアドレスを入力してください
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->アフリカーンス語
sq.fmuser.org ->アルバニア語
ar.fmuser.org ->アラビア語
hy.fmuser.org ->アルメニア語
az.fmuser.org ->アゼルバイジャン
eu.fmuser.org ->バスク
be.fmuser.org ->ベラルーシ語
bg.fmuser.org ->ブルガリア語
ca.fmuser.org ->カタロニア語
zh-CN.fmuser.org ->中国語(簡体字)
zh-TW.fmuser.org ->中国語(繁体字)
hr.fmuser.org ->クロアチア語
cs.fmuser.org ->チェコ
da.fmuser.org ->デンマーク語
nl.fmuser.org ->オランダ語
et.fmuser.org ->エストニア語
tl.fmuser.org ->フィリピン人
fi.fmuser.org ->フィンランド語
fr.fmuser.org ->フランス語
gl.fmuser.org ->ガリシア語
ka.fmuser.org ->グルジア語
de.fmuser.org ->ドイツ語
el.fmuser.org ->ギリシャ語
ht.fmuser.org ->ハイチクレオール
iw.fmuser.org ->ヘブライ語
hi.fmuser.org ->ヒンディー語
hu.fmuser.org ->ハンガリー語
is.fmuser.org ->アイスランド語
id.fmuser.org ->インドネシア語
ga.fmuser.org ->アイルランド
it.fmuser.org ->イタリア語
ja.fmuser.org ->日本語
ko.fmuser.org ->韓国語
lv.fmuser.org ->ラトビア語
lt.fmuser.org ->リトアニア語
mk.fmuser.org ->マケドニア語
ms.fmuser.org ->マレー語
mt.fmuser.org ->マルタ語
no.fmuser.org ->ノルウェー語
fa.fmuser.org ->ペルシア語
pl.fmuser.org ->ポーランド語
pt.fmuser.org ->ポルトガル語
ro.fmuser.org ->ルーマニア語
ru.fmuser.org ->ロシア語
sr.fmuser.org ->セルビア語
sk.fmuser.org ->スロバキア
sl.fmuser.org ->スロベニア語
es.fmuser.org ->スペイン語
sw.fmuser.org ->スワヒリ語
sv.fmuser.org ->スウェーデン語
th.fmuser.org ->タイ
tr.fmuser.org ->トルコ語
uk.fmuser.org ->ウクライナ語
ur.fmuser.org ->ウルドゥー語
vi.fmuser.org ->ベトナム人
cy.fmuser.org ->ウェールズ
yi.fmuser.org ->イディッシュ語
FMUSER Wirlessはビデオとオーディオをより簡単に送信します!
お問い合わせ
カテゴリー
ニュースレター