press-next
Version:
Vue3 组件库,支持 Composition API
49 lines (34 loc) • 1.19 kB
text/typescript
import type { TimInstanceType, TimType } from '../types';
const timMap: Record<number, TimInstanceType> = {};
export function init({ appId, TIM, logLevel = 0 }: {
appId: number;
TIM: TimType,
logLevel?: number;
}): TimInstanceType {
if (timMap[appId]) return timMap[appId];
const options = {
SDKAppID: appId,
};
const tim: TimInstanceType = TIM.create(options);
timMap[appId] = tim;
// 设置 SDK 日志输出级别,详细分级请参见 setLogLevel https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#setLogLevel 接口的说明</a>
tim.setLogLevel(logLevel); // 普通级别,日志量较多,接入时建议使用
// tim.setLogLevel(1); // release 级别,SDK 输出关键信息,生产环境时建议使用
const watchReadyCallback = function () {
tim.updateReadyStatus?.(true);
};
tim.on(TIM.EVENT.SDK_READY, watchReadyCallback);
tim.updateUserId = (userId) => {
tim.userId = userId;
};
tim.updateUserSig = (userSig) => {
tim.userSig = userSig;
};
tim.updateReadyStatus = (status) => {
tim.isReady = !!status;
};
tim.updateOnlineStatus = (status) => {
tim.isOnline = !!status;
};
return tim;
}