/**
 * @param {string} url
 * @param {Function} success
 * @param {Function} fail  
 * @description 创建新的scoket链接
 */

export function scoketNew(url, success = function() {}, fail = function() {}) {
	const scoket = uni.connectSocket({
		url,
		success,
		fail
	});
	return {
		scoket,
		scoketOpen,
		scoketSend,
		scoketClose,
		scoketMessage
	}
}

/**
 * @param {Object} scoket 会话对象
 */
export function scoketOpen() {
	let that = this;
	return new Promise((resolve, rejact) => {
		that.scoket.onOpen(res => {
			resolve(res)
		})
	})
}
// 发送消息
/**
 * @param {Object} data 发送的数据
 */
export function scoketSend(data) {
	let that = this;
	return new Promise((resolve, rejact) => {
		that.scoket.send({
			data: JSON.stringify(data),
			success: res => {
				resolve(res)
			},
			fail: res => {
				rejact(res)
			},
		});
	})

}
/**
 * @@description  关闭会话链接
 */
export function scoketClose() {
	this.scoket.close({
		success(res) {
			console.log('关闭成功', res);
		},
		fail(err) {
			console.log('关闭失败', err);
		}
	})
}
/**
 * @@description  监听会话
 */
export function scoketMessage(fun) {
	this.scoket.onMessage(res => {
		const data = JSON.parse(res.data);
		if (data.code) {
			if (+data.code == 60018) {
				console.log('scoket返回错误',data);
			}
		} else {
			fun(data)
		}
	});
}



// this.socketTask.onOpen(res => {
// 	console.log('WebSocket连接正常打开中...！');
// 	this.socketOpen = true;
// 	// 注：只有连接正常打开中 ，才能正常收到消息
// 	this.socketTask.onMessage(res => {
// 		this.client_id = JSON.parse(res.data).client_id;
// 		console.log(JSON.parse(res.data));
// 		if (JSON.parse(res.data).code == 10501) {
// 			console.log('服务器问题');
// 			uni.showLoading({
// 				title: '断线重连'
// 			});
// 			// this.closeSocket();
// 		} else if (JSON.parse(res.data).code == 0) {
// 			this.$api.msg(JSON.parse(res.data).msg);
// 		} else {
// 			console.log('连接成功');
// 			// ls.content.indexOf('http')
// 			let newmessage = JSON.parse(res.data);
// 			let add_time = getTime(newmessage.timestamp)

// 			newmessage = {
// 				avatar: newmessage.avatar,
// 				content: newmessage.content,
// 				nickname: newmessage.nickname,
// 				order_id: newmessage.order_id,
// 				type: newmessage.m_type,
// 				uid: newmessage.uid,
// 				add_time: add_time
// 			}

// 			if (newmessage.type == 5) {
// 				newmessage.content = newmessage.content.split(',');
// 				newmessage.content[0].split('?')
// 			}


// 			if (newmessage.order_id == this.order_id) {
// 				// let ques_name = this.que_url
// 				this.MsgList = this.MsgList.concat(newmessage);
// 				this.MsgList = this.MsgList.map(e => {
// 					e.add_time = Date.parse(e.add_time).toString();
// 					e.add_time = e.add_time.substr(0, 10);
// 					return e;
// 				});
// 				for (let i = 0; i < this.MsgList.length; i++) {
// 					let length = this.MsgList.length;
// 					//当前记录时间
// 					let newTime = this.MsgList[i].add_time;
// 					//上一条记录时间
// 					if (i + 1 < length) {
// 						let lastTime = this.MsgList[i + 1].add_time;
// 						let time = (this.MsgList[i + 1].add_time) - (this.MsgList[i].add_time);
// 						if (time > 300) {
// 							this.MsgList[i].time = true;
// 						}
// 					}
// 				}
// 				this.MsgList = this.MsgList.map(e => {
// 					e.add_time = getTime(e.add_time);
// 					return e;
// 				});
// 				console.log(334, this.MsgList)
// 			}
// 			this.$nextTick(function() {
// 				this.scrollToBottom();
// 			});
// 		}
// 	});
// 	let join = '{"type":"handshake","role":"user","uid":' + this.userInfo.uid + '}';
// 	console.log(join);
// 	this.socketTask.send({
// 		data: join,
// 		success: res => {
// 			console.log('消息发送成功');
// 		}
// 	});
// });
