app-lib-mock-server-stream
Version:
流媒体文件-【app-lib-mock-server】
88 lines (69 loc) • 2.25 kB
JavaScript
/*************************************************************************************
*
* 基本条件动态准备
*
* 1.
*
*
*
**************************************************************************************/
const {
STREAM_NAMESPACE_NAME,
STREAM_SERVER_DATABASE_NAME,
STREAM_SERVER_TABLE_NAME,
STREAM_COMPLETE_PATH,
DEDAULT_STREAM_NAMESPACE_DATA
} = require('./constant');
// 提取公共方法 TODO 动态创建命名口空间和表 和数据
/**
* 获取启用的服务数据
*/
const getStreamServersData = () => {
const { cache: { getCacheData } } = Frame.option;
let streamServers = getCacheData(STREAM_COMPLETE_PATH, true) || [];
return streamServers.filter(({ isEnable }) => (isEnable === true));
}
/**
* 是否支持代理
* * 存在命名空间和代理表名即可
*/
const isSupportStream = () => Frame.isExistNamespace(STREAM_NAMESPACE_NAME)
&& Frame.isExistDatabase(STREAM_NAMESPACE_NAME, STREAM_SERVER_DATABASE_NAME);
/**
* 初始化创建支持的代理
* 1. 创建代理空间
* 2. 创建代理服务库
* 2. 创建代理服务表
*/
const initStream = (middlewareConfig) => {
let { isExistNamespace, createNamespace, isExistDatabase, createData, refreshCache, log } = Frame;
if (!isExistNamespace(STREAM_NAMESPACE_NAME)) {
log.md('stream', 'init namespace')
// 创建命名空间 -- 结构后不能创建
Frame.createNamespace(DEDAULT_STREAM_NAMESPACE_DATA);
}
// 不存在表的时候 创建表 时候创建表和库
if (!isExistDatabase(STREAM_NAMESPACE_NAME, STREAM_SERVER_DATABASE_NAME)) {
log.md('stream', 'init database');
Frame.createData(STREAM_COMPLETE_PATH);
}
// 刷新缓存
refreshCache();
}
/**
* 获取代理数据 不存在 则会创建初始化
* @param {object} option
* @returns 不存在为null 存在 则为对应的数组数据
*/
const getStreamServers = (middlewareConfig) => {
let isSupport = isSupportStream();
if (isSupport) {
return getStreamServersData();
} else { // 初始化创建
initStream(middlewareConfig)
}
return [];
}
module.exports = {
getStreamServers
}