// 初始化io对象
// import { host } from "@/utils/config.js";
import io from '@hyoga/uni-socket.io'; 
let mq = [];
let audio = null;
function makeVoice(msg) {
  audio = new Audio(msg);
  audio.play();
  audio.addEventListener("ended", endCall);
}

function endCall() {
  if (audio) {
    audio.removeEventListener("ended", endCall);
    console.log("消息播放完毕");
  }
  mq.shift();
  if (mq.length) {
    makeVoice(mq[0]);
  }
}

let socket = io('http://7and5.cn' + ":2120");
// uid 其实就是网点ID，每个网点的ID是唯一的
// 当socket连接后发送登录请求
socket.on("connect", function () {
  console.log("socket连接成功");
  mq = [];
  const uid = localStorage.getItem("outlets_id");
  uid && socket.emit("login", uid);
});
socket.on("connect_error", function (err) {
  console.log("socket连接失败,尝试重新连接");
  setTimeout(() => {
    socket.connect();
  }, 1000);
});
socket.on("disconnect", function () {
  console.log("socket断开连接,重新连接");
  setTimeout(() => {
    socket.connect();
  }, 1000);
});
// 当服务端推送来消息时触发
socket.on("new_msg", function (msg) {
  console.log(msg);
  const data = JSON.parse(msg);
  const path = host + data.data.path;
  mq.push(path);
  if (mq.length === 1) {
    // 当前队列中存在语音播报，不立即播放，存入语音队列
    makeVoice(path);
  }
});

export function reconnect() {
  socket.disconnect();
}
