var option = { //mqtt客户端的id,这里面应该还可以加上其他参数,具体看官方文档 clientId: 'mqttjs_' + (Math.random() * 1000000).toString(), timeout: 5000, useSSL: false } var href = window.location.href; var path = window.location.pathname; let alarmBasicUrl = href.slice(0, href.indexOf(path)); //"ws://localhost:8384/mqtt" let alarmMqttUrl = "ws:" + alarmBasicUrl.slice(alarmBasicUrl.indexOf("//")) + "/mqtt"; var alarmMqttClient = mqtt.connect(alarmMqttUrl, option); alarmMqttClient.on('connect', function () { console.log("alarm bar connected to mqtt server successfully"); //alarmMqttClient.subscribe('/+/+/thing/event/OnGenericAlarm/+', function (err) { alarmMqttClient.subscribe('/sys/Edge.Core.Processor.Dispatcher.DefaultDispatcher/ProcessorsDispatcher/thing/event/OnGenericAlarm/post', function (err) { if (err) { console.log("failed to subsecribe OnGenericAlarm event"); } }); }); alarmMqttClient.on('message', function (topic, message) { var reg = RegExp(/OnAlarm/); if (topic.toString().match(RegExp(/OnGenericAlarm/))) { console.log("OnGenericAlarm Received"); ProcessGenericAlarm(JSON.parse(message.toString())); } }); function ProcessGenericAlarm(genericAlarm) { var infoSpan = document.getElementById("common_header_left_text"); if (infoSpan === null || genericAlarm === null || genericAlarm === undefined) return; //console.log("JOy:"+genericAlarm); //infoSpan.innerHTML = genericAlarm.GenericAlarm.Title; if (alarmBarVm !== null && alarmBarVm !== undefined) { alarmBarVm.currentAlarmBarItem = genericAlarm; if (infoSpan.style.visibility === 'hidden') { infoSpan.style.visibility = 'visible'; } if (genericAlarm.Severity === "Error" || genericAlarm.Severity === "Fatal") { addAlarmAudio(); //var alarmAudio = document.getElementById("alarm_audio"); //if (alarmAudio == null) { // alarmAudio = document.createElement("audio"); // alarmAudio.id = "alarm_audio"; // alarmAudio.src = "/WebConsole/audio/alarm.wav"; // alarmAudio.autoplay = "autoplay"; // alarmAudio.loop = "loop"; // //alarmAudio.muted = "false"; // //alarmAudio.controls = "controls"; // if (document.getElementById("common_header")) // document.getElementById("common_header").appendChild(alarmAudio); //} } else { toAddAlarmAudio(); // removeAlarmAudio(); } } } function removeAlarmAudio() { var alarmAudio = document.getElementById("alarm_audio"); if (alarmAudio != null) { //alarmAudio.muted = "muted"; if (document.getElementById("common_header")) document.getElementById("common_header").removeChild(alarmAudio); } } function addAlarmAudio() { var alarmAudio = document.getElementById("alarm_audio"); if (alarmAudio === null) { alarmAudio = document.createElement("audio"); alarmAudio.id = "alarm_audio"; alarmAudio.src = "/WebConsole/audio/alarm.wav"; alarmAudio.autoplay = "autoplay"; alarmAudio.loop = "loop"; //alarmAudio.muted = "false"; //alarmAudio.controls = "controls"; if (document.getElementById("common_header")) document.getElementById("common_header").appendChild(alarmAudio); } }