import WebIM from '../newSDK/Easemob-chat.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) {
		uni.showTabBarRedDot({
			index: 3,
			success(res) {
				console.log(res);
			}
		})
		vueBus.$emit('message')
	}, //收到文本消息
	onEmojiMessage: function(message) {
		uni.showTabBarRedDot({
			index: 3,
			success(res) {
				console.log(res);
			}
		})
		vueBus.$emit('message')
	}, //收到表情消息
	onPictureMessage: function(message) {
		uni.showTabBarRedDot({
			index: 3,
			success(res) {
				console.log(res);
			}
		})
		vueBus.$emit('message')
	}, //收到图片消息
	onCmdMessage: function(message) {
		uni.showTabBarRedDot({
			index: 3,
			success(res) {
				console.log(res);
			}
		})
		vueBus.$emit('message')
	}, //收到命令消息
	onAudioMessage: function(message) {
		uni.showTabBarRedDot({
			index: 3,
			success(res) {
				console.log(res);
			}
		})
		vueBus.$emit('message')
	}, //收到音频消息
	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
};