Files
dou_fire/im/INIT.js
2023-03-24 10:06:59 +08:00

59 lines
1.1 KiB
JavaScript

import Vue from 'vue'
import store from '@/store';
import NIMSDK from 'nim-web-sdk-ng/dist/NIM_UNIAPP_SDK'
import { imToken } from '@/apis/interfaces/yxim.js'
export const INIT = async () => {
let APPKEY = ''
let TOKEN = ''
let UID = ''
if( store.getters.getToken == '' || uni.getStorageSync('token') == '' ){
return '用户未登录'
}
await imToken().then(res => {
let { app_key, token, uid } = res;
APPKEY = app_key
TOKEN = token
UID = uid
}).catch(err => {
uni.showToast({
title: 'IM INIT ERR' + err.code,
icon : 'none'
})
})
const yxim = new NIMSDK({
appkey : APPKEY,
account : UID,
token : TOKEN,
debugLevel : 'debug',
needReconnect : true,
reconnectionAttempts: 5
})
// 注册监听事件
const eventList = [
'logined',
'kicked',
'willReconnect',
'disconnect',
'msg',
'syncdone',
]
eventList.forEach(key => {
yxim.on(key, res => {
console.log(`{$key}:`, res ? JSON.parse(JSON.stringify(res)): res)
})
})
await yxim.connect();
// 挂载全局变量方法
Vue.prototype.$nim = yxim;
}