jyyhq/witDisplay/js/core/WebSocketJs.js

123 lines
3.6 KiB
JavaScript

var obj = [];
$(function() {
// getHatData();
// getHatHttpData();
})
function getHatData() {
// let loadingMsg = layer.msg('数据请求中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
let ws = new WebSocket("ws://118.195.180.29:11071");
ws.onopen = function () {
console.log("WebSocket success ok")
}
ws.onerror = function(){
layer.alert("WebSocket连接失败")
console.log("WebSocket error")
}
ws.onmessage = function (e) {
console.log("WebSocket loadData")
var datas = JSON.parse(e.data); //获取数据
console.log("WebSocket" + JSON.stringify(datas))
if(datas.length !== 0){
threadData(datas, 'websocket');
}
// if(!obj){
// layer.alert("暂无安全帽")
// }else{
// addMarker(obj);
// }
// ws.close();
}
ws.onclose = function(){
// layer.close(loadingMsg);
console.log("WebSocket close");
}
}
function getHatHttpData() {
let timestamp = Math.round(new Date().getTime()/1000).toString();
let secret_key = "7cdc5ef8ata3bd8754a572de958b7e06";
let salt = SALT();
let imei = "860387067093260";
let signature = SHA1(secret_key + timestamp + salt);
delete $.ajaxSettings.headers.token;
$.ajax({
type: "POST",
url: 'http://118.195.180.29:11076/index.php?r=app/getgpslatestpos',
data: {
"timestamp" : timestamp,
"signature" : signature,
"salt" : salt,
"imei": imei
},
dataType: 'json',
success: function(result) {
if(result.status === 1){
threadData(result.result, 'http');
}
// var l = result.list;
},
error: function(e) {
console.log("hat," + JSON.stringify(e));
}
});
}
function threadData(datas, type) {
if(type === 'websocket'){
for(let k in datas){
var data = datas[k];
showDataArr(data);
}
}else{
let data = datas;
showDataArr(data);
}
console.log("hat:" + type + ":" + JSON.stringify(obj));
if(obj.length !== 0){
for(let i = 0; i < obj.length; i++) {
for(let j = 0; j < obj.length; j++) {
if (obj[i].id === obj[j].id && i !== j) {
if(obj[i].position_time < obj[j].position_time){
obj.splice(j, 1);
j--;
}
}
}
}
let value = JSON.stringify(obj);
console.log("hat缓存数据:" + type + ":" + value);
localStorage.setItem("hatObj", value);
}
}
function showDataArr(data) {
if(data.wgs84_lon !== 0){
if(data.type === 'GPS') { //标签GPS数据
obj.push(
{
lon : data.wgs84_lon,
lat : data.wgs84_lat,
id : data.id,
voltage : data.voltag,
status : "1",
position_time : data.position_time
}
);
}else if(data.type === 'sos'){
if(data.alarm_type === 20){
obj.push(
{
lon : data.wgs84_lon,
lat : data.wgs84_lat,
id : data.id,
voltage : data.voltag,
status : "2",
position_time : data.position_time
}
);
}
}
}
}