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.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.time.LocalTime; import java.time.LocalTime;
/** /**
@ -18,6 +20,8 @@ import java.time.LocalTime;
public class D3F0SelfCheckMessage extends BaseMessage { public class D3F0SelfCheckMessage extends BaseMessage {
GnssStatusMsg statusMsg = new GnssStatusMsg(); GnssStatusMsg statusMsg = new GnssStatusMsg();
String firmwareVersion;
String imei;
@Override @Override
public void decodeBody(ByteBuf src) { public void decodeBody(ByteBuf src) {
@ -33,9 +37,14 @@ public class D3F0SelfCheckMessage extends BaseMessage {
statusMsg.setRssi(src.readUnsignedByte()); statusMsg.setRssi(src.readUnsignedByte());
statusMsg.setVoltage(src.readUnsignedShort()); statusMsg.setVoltage(src.readUnsignedShort());
// skip version // skip version
src.readUnsignedShort(); int ver = src.readUnsignedShort();
firmwareVersion = ((ver>>8)&0xFF) + "." + ((ver>>4)&0xF) + "." + (ver&0xF);
statusMsg.setTemperature((float) (src.readUnsignedShort()/10)); statusMsg.setTemperature((float) (src.readUnsignedShort()/10));
statusMsg.setHumidity((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); 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) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -89,7 +93,7 @@ public class DataPersistServiceImpl implements DataPersistService {
trxMsg.setTenantid(message.getTenantId()); trxMsg.setTenantid(message.getTenantId());
trxMsgMapper.insert(trxMsg); trxMsgMapper.insert(trxMsg);
// 保存消息摘要 // 保存消息摘要
saveMsg(message); saveMsg(message,null);
// 检测该对象是否已存在 // 检测该对象是否已存在
GnssStatus deviceState = deviceStateRepository.getByDeviceId(message.getId()); 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 gnssMsg = new GnssMsg();
gnssMsg.setTenantid(message.getTenantId()); gnssMsg.setTenantid(message.getTenantId());
gnssMsg.setCreatetime(message.getCreateTime()); gnssMsg.setCreatetime(message.getCreateTime());
@ -116,6 +120,9 @@ public class DataPersistServiceImpl implements DataPersistService {
gnssMsg.setMsgtype(message.getHeader()); gnssMsg.setMsgtype(message.getHeader());
gnssMsg.setMsglen(message.getLen()); gnssMsg.setMsglen(message.getLen());
gnssMsg.setTx(false); gnssMsg.setTx(false);
if(content!=null && content.length()<=128) {
gnssMsg.setContent(content);
}
msgMapper.insert(gnssMsg); msgMapper.insert(gnssMsg);
} }

View File

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