1、修改https下websocket建立失败的问题

2、d3f0消息摘要增加显示IMEI和版本号
This commit is contained in:
weidong 2024-01-02 16:29:09 +08:00
parent bbe4a841ea
commit 54813dd0d4
3 changed files with 26 additions and 7 deletions

View File

@ -5,6 +5,8 @@ import io.netty.buffer.ByteBuf;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.LocalTime;
/**
@ -18,6 +20,8 @@ import java.time.LocalTime;
public class D3F0SelfCheckMessage extends BaseMessage {
GnssStatusMsg statusMsg = new GnssStatusMsg();
String firmwareVersion;
String imei;
@Override
public void decodeBody(ByteBuf src) {
@ -33,9 +37,14 @@ public class D3F0SelfCheckMessage extends BaseMessage {
statusMsg.setRssi(src.readUnsignedByte());
statusMsg.setVoltage(src.readUnsignedShort());
// skip version
src.readUnsignedShort();
int ver = src.readUnsignedShort();
firmwareVersion = ((ver>>8)&0xFF) + "." + ((ver>>4)&0xF) + "." + (ver&0xF);
statusMsg.setTemperature((float) (src.readUnsignedShort()/10));
statusMsg.setHumidity((float) (src.readUnsignedShort()/10));
// imei
if(src.readableBytes()>=15){
imei = src.readCharSequence(15, StandardCharsets.UTF_8).toString();
}
}

View File

@ -74,8 +74,12 @@ public class DataPersistServiceImpl implements DataPersistService {
else deviceStateRepository.updateById(deviceState);
// 保存消息摘要
saveMsg(message);
if(message.getImei()!=null) {
saveMsg(message, "IMEI:" + message.getImei() + ", ver:" + message.getFirmwareVersion());
}
else{
saveMsg(message, "ver:" + message.getFirmwareVersion());
}
} catch (Exception e) {
e.printStackTrace();
}
@ -89,7 +93,7 @@ public class DataPersistServiceImpl implements DataPersistService {
trxMsg.setTenantid(message.getTenantId());
trxMsgMapper.insert(trxMsg);
// 保存消息摘要
saveMsg(message);
saveMsg(message,null);
// 检测该对象是否已存在
GnssStatus deviceState = deviceStateRepository.getByDeviceId(message.getId());
@ -108,7 +112,7 @@ public class DataPersistServiceImpl implements DataPersistService {
}
}
void saveMsg(BaseMessage message){
void saveMsg(BaseMessage message,String content){
GnssMsg gnssMsg = new GnssMsg();
gnssMsg.setTenantid(message.getTenantId());
gnssMsg.setCreatetime(message.getCreateTime());
@ -116,6 +120,9 @@ public class DataPersistServiceImpl implements DataPersistService {
gnssMsg.setMsgtype(message.getHeader());
gnssMsg.setMsglen(message.getLen());
gnssMsg.setTx(false);
if(content!=null && content.length()<=128) {
gnssMsg.setContent(content);
}
msgMapper.insert(gnssMsg);
}

View File

@ -124,8 +124,10 @@
var basePath = curPath.substring(0, pos);
//建立webSocket连接
//var webSocktPath = (basePath+"/websocket").replace("https","wss");
var webSocktPath = (basePath+"/websocket").replace("http","ws");
var webSocktPath;
if(basePath.indexOf("https") != -1)
webSocktPath = (basePath+"/websocket").replace("https","ws");
else webSocktPath = (basePath+"/websocket").replace("http","ws");
var websocket = new WebSocket(webSocktPath);
//打开webSokcet连接时回调该函数
@ -134,6 +136,7 @@
}
websocket.onerror = function (){
console.log("Socket error");
layui.alert("Open web socket failed!");
}
//接收信息
websocket.onmessage = function (event) {