import WebIM from '../newSDK/Easemob-chat-4.1.7.js'
import config from './WebIMConfig.js'
import vueBus from '@/utils/vueBus'
   
//初始化
let conn = {};
WebIM.config = config;
conn = WebIM.conn = new WebIM.connection({
    appKey: config.appkey,
     https: true, //是否使用HTTPS
     url: "wss://im-api-wechat.easemob.com/websocket", // socket server (3.0 SDK)
     apiUrl: "https://a1.easemob.com", // rest server
     heartBeatWait: 30000, //心跳间隔
     autoReconnectNumMax: 5, //自动重连次数
     useOwnUploadFun: true, // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url)
// WebIM.config 为之前集成里介绍的WebIMConfig.js
})

let login = false

//回调
conn.listen({
    onOpened: function ( message ) {
        console.log('环信登录成功');
    },         //连接成功回调 
    onClosed: function ( message ) {
        console.log('环信断开链接');
		/* uni.showModal({
			title: '提示',
			content: '您已在其他地方登录,是否重新登录',
			success: function (res) {
				if (res.confirm) {
					uni.reLaunch({
						url: "/pages/login/login"
					})
				} else if (res.cancel) {
					console.log('用户点击取消');
				}
			}
		}); */
    },         //连接关闭回调
    onTextMessage: function ( message ) {
		vueBus.$emit('message','text')
	},    //收到文本消息
    onEmojiMessage: function ( message ) {
        vueBus.$emit('message','emoji')
    },   //收到表情消息
    onPictureMessage: function ( message ) {
		vueBus.$emit('message','img')
	}, //收到图片消息
    onCmdMessage: function ( message ) {},     //收到命令消息
    onAudioMessage: function ( message ) {
		vueBus.$emit('message','audio')
	},   //收到音频消息
    onLocationMessage: function ( message ) {},//收到位置消息
    onFileMessage: function ( message ) {},    //收到文件消息
    onVideoMessage: function (message) {
        var node = document.getElementById('privateVideo');
        var option = {
            url: message.url,
            headers: {
              'Accept': 'audio/mp4'
            },
            onFileDownloadComplete: function (response) {
                var objectURL = WebIM.utils.parseDownloadResponse.call(conn, response);
                node.src = objectURL;
            },
            onFileDownloadError: function () {
                console.log('File down load error.')
            }
        };
        WebIM.utils.download.call(conn, option);
    },   //收到视频消息
    onPresence: function ( message ) {},       //处理“广播”或“发布-订阅”消息,如联系人订阅请求、处理群组、聊天室被踢解散等消息
    onRoster: function ( message ) {},         //处理好友申请
    onInviteMessage: function ( message ) {},  //处理群组邀请
    onOnline: function () {},                  //本机网络连接成功
    onOffline: function () {},                 //本机网络掉线
    onError: function ( message ) {},          //失败回调
    onBlacklistUpdate: function (list) {       //黑名单变动
        // 查询黑名单,将好友拉黑,将好友从黑名单移除都会回调这个函数,list则是黑名单现有的所有好友信息
        console.log(list);
    },
    onRecallMessage: function(message){},      //收到撤回消息回调
    onReceivedMessage: function(message){},    //收到消息送达服务器回执
    onDeliveredMessage: function(message){

    },   //收到消息送达客户端回执
    onReadMessage: function(message){},        //收到消息已读回执
    onCreateGroup: function(message){},        //创建群组成功回执(需调用createGroupNew)
    onMutedMessage: function(message){},       //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员
    onChannelMessage: function(message){}      //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息
});

export {conn};