import config from '../config'
import storage from './storage'
import {navigateTo} from './utils'

export default {
	socketTask: null,
	timer: null,
	/**
	 * 创建 WebSocket 连接。
	 */
	connect(){
		let users = storage.getJson("users");
		let token = storage.getJson("token");
		let stationCode=storage.get("stationCode")
		if(users == null || token == null){
			navigateTo("public/login");
			return false;
		}
		if(this.timer !=null){
			clearInterval(this.timer)
			this.timer=null
		}
		if(this.socketTask!=null){
			this.socketTask.close();
		}
		this.socketTask = uni.connectSocket({
			url: config.web_socket_url+stationCode+'/'+token,
			header: {
				'content-type': 'application/json'
			},
			complete: ()=> {}
		});
		// 监听WebSocket连接打开事件。
		this.socketTask.onOpen(() => {
			console.log('WebSocket连接已打开！');
			this.onSocketOpen()
		});
		//接收服务器数据事件
		this.socketTask.onMessage(res=>{
			this.onSocketMsg(res)
		})
		//监听WebSocket关闭事件
		this.socketTask.onClose(()=>{
			console.log('WebSocket连接已关闭！');
		})
		this.socketTask.onError(()=>{
			console.log("WebSocket连接错误")
		})
		if(this.timer ==null){
			this.timer=setInterval(()=>{
				if(this.socketTask.readyState!=1){
					this.socketTask.close()
					this.connect()
				}
			},2000)
		}
	},
	onSocketOpen(){},
	onSocketMsg(){},
	sendmessage(msg){
		this.socketTask.send({data:JSON.stringify(msg)})
	},
}

