Files
uniapp-im-shop/uni_modules/tuikit-atomic-x/state/LiveSummaryState.ts
2026-03-07 02:02:22 +07:00

59 lines
1.9 KiB
TypeScript

/**
* @module LiveSummaryState
* @module_description
* 统计信息状态管理模块
* 核心功能:统计和展示直播过程中的关键数据,包括观看人数、点赞数、礼物数等实时统计。
* 技术特点:支持实时数据采集、数据聚合、统计分析等功能,提供完整的直播数据视图。
* 业务价值:为直播平台提供数据分析能力,支持直播效果评估和优化改进。
* 应用场景:直播数据展示、主播分析、流量统计、商业数据报表等数据分析场景。
*/
import { ref } from "vue";
import { getRTCRoomEngineManager } from "./rtcRoomEngine";
/**
* 直播间统计信息
* @type {Ref<any>}
* @memberof module:LiveSummaryState
* @example
* import { useLiveSummaryState } from '@/uni_modules/tuikit-atomic-x/state/LiveSummaryState';
* const { summaryData } = useLiveSummaryState('your_live_id');
*
* // 监听统计数据变化
* watch(summaryData, (newData) => {
* if (newData) {
* console.log('直播统计数据更新:', newData);
* }
* });
*
* // 获取当前统计数据
* const data = summaryData.value;
* if (data) {
* console.log('当前直播统计数据:', data);
* }
*/
const summaryData = ref<any>();
const onLiveSummaryStoreChanged = (eventName : string, res : string) : void => {
try {
if (eventName === "summaryData") {
const data = JSON.parse(res);
summaryData.value = data;
console.log("直播统计数据更新", summaryData.value)
}
} catch (error) {
console.error("onLiveSummaryStoreChanged error:", error);
}
};
function bindEvent(liveID : string) : void {
getRTCRoomEngineManager().on("liveSummaryStoreChanged", onLiveSummaryStoreChanged, liveID);
}
export function useLiveSummaryState(liveID : string) {
bindEvent(liveID);
return {
summaryData, // 直播间统计信息
};
}
export default useLiveSummaryState;