过滤无用消息
This commit is contained in:
@@ -309,30 +309,31 @@ class HomeController extends Controller {
|
||||
|
||||
// 保存未知消息
|
||||
async saveUnknown() {
|
||||
const { ctx } = this;
|
||||
const ctx = this.ctx;
|
||||
try {
|
||||
const body = ctx.request.body;
|
||||
const { system_type, original_msg, msg_data, created_at } = body;
|
||||
const { msg_id, sn_number, original_msg, msg_data, created_at } = body;
|
||||
const form = {
|
||||
system_type: system_type,
|
||||
msg_id: msg_id,
|
||||
sn_number: sn_number,
|
||||
original_msg: original_msg,
|
||||
msg_data: msg_data,
|
||||
created_at: created_at
|
||||
};
|
||||
const result = await ctx.service.home.saveUnknown(form);
|
||||
if (result == "error") {
|
||||
this.setResponse(ctx, 500, '服务器错误', "none");
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
return;
|
||||
}
|
||||
if (result) {
|
||||
this.setResponse(ctx, 200, '保存未知消息成功', "none");
|
||||
setResponse(ctx, 200, '保存未知消息成功', "none");
|
||||
} else {
|
||||
this.setResponse(ctx, 404, '保存未知消息失败', "none");
|
||||
setResponse(ctx, 404, '保存未知消息失败', "none");
|
||||
}
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "saveUnknown";
|
||||
ctx.app.middleware.log('../../controllerLog', blockName + ">>>>" + error);
|
||||
this.setResponse(ctx, 500, '服务器错误', "none");
|
||||
ctx.app.middleware.utils.log('../../controllerLog', blockName + ">>>>" + error);
|
||||
setResponse(ctx, 500, '服务器错误', "none");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -14,45 +14,53 @@ module.exports = (app) => {
|
||||
console.log('socket客户端已连接');
|
||||
});
|
||||
socket.on('data', async function (data) {
|
||||
let value = data.toString('hex');
|
||||
console.log(value);
|
||||
let response = "000000068100";
|
||||
socket.write(Buffer.from(response, 'hex'));
|
||||
// 00000043010000000000000000000000000000000000000000 18 31353037365f32303236303330333135313835315f323832 00 0f 0102030405060708090a0b0c0d0e0f
|
||||
let sn_value = value.slice(52, 100),
|
||||
snBuffer = Buffer.from(sn_value, 'hex'),
|
||||
snNumber = snBuffer.toString('ascii').split("_")[0].padStart(8, '0'),
|
||||
msg_value = value.slice(104, value.length),
|
||||
msgBuffer = Buffer.from(msg_value, 'hex'),
|
||||
msgData = msgBuffer.toString('ascii');
|
||||
console.log(msgData)
|
||||
// socket接收消息后触发事件监听器,将消息发送给websocket客户端并存储在数据库中
|
||||
shunt.socketEmitter().emit(snNumber, { msg_data: msgData, created_at: new Date() });
|
||||
const shortMsg = await app.curl('http://127.0.0.1:' + app.server.address().port + '/shortMsg', {
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
method: 'POST',
|
||||
timeout: 3000,
|
||||
data: {
|
||||
sn_number: snNumber,
|
||||
original_msg: value,
|
||||
msg_data: msgData,
|
||||
created_at: new Date()
|
||||
},
|
||||
});
|
||||
if (shortMsg.data.code == 404) {
|
||||
await app.curl('http://127.0.0.1:' + app.server.address().port + '/saveUnknown', {
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
method: 'POST',
|
||||
timeout: 3000,
|
||||
data: {
|
||||
system_type: 1,
|
||||
original_msg: value,
|
||||
msg_data: msgData,
|
||||
created_at: new Date()
|
||||
},
|
||||
});
|
||||
let value = data.toString('hex');
|
||||
if (value.length > 60) {
|
||||
let Msg_id_len, length, Msg_id, msgID, snNumber, Total_len, Cmd_code, Token, Content_len, Content, msgData;
|
||||
Msg_id_len = value.slice(50, 52);
|
||||
length = 52 + parseInt(Msg_id_len, 16) * 2;
|
||||
Msg_id = value.slice(52, length);
|
||||
msgID = Buffer.from(Msg_id, 'hex').toString();
|
||||
snNumber = msgID.split("_")[0].padStart(8, '0');
|
||||
if (/^\d+$/.test(snNumber) && !/^0+$/.test(snNumber)) {
|
||||
Total_len = value.slice(0, 8);
|
||||
Cmd_code = value.slice(8, 10);
|
||||
Token = value.slice(10, 50);
|
||||
Content_len = value.slice(length, length + 4);
|
||||
Content = value.slice(length + 4, value.length);
|
||||
msgData = Buffer.from(Content, 'hex').toString('ascii');
|
||||
// socket接收消息后触发事件监听器,将消息发送给websocket客户端并存储在数据库中
|
||||
shunt.socketEmitter().emit(snNumber, { msg_data: msgData, created_at: new Date() });
|
||||
const shortMsg = await app.curl('http://127.0.0.1:' + app.server.address().port + '/shortMsg', {
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
method: 'POST',
|
||||
timeout: 3000,
|
||||
data: {
|
||||
sn_number: snNumber,
|
||||
original_msg: value,
|
||||
msg_data: msgData,
|
||||
created_at: new Date()
|
||||
},
|
||||
});
|
||||
if (shortMsg.data.code == 404) {
|
||||
await app.curl('http://127.0.0.1:' + app.server.address().port + '/saveUnknown', {
|
||||
dataType: 'json',
|
||||
contentType: 'application/x-www-form-urlencoded',
|
||||
method: 'POST',
|
||||
timeout: 3000,
|
||||
data: {
|
||||
msg_id: msgID,
|
||||
sn_number: snNumber,
|
||||
original_msg: value,
|
||||
msg_data: msgData,
|
||||
created_at: new Date()
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
socket.on('end', function (data) {
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = (app) => {
|
||||
const { INTEGER, TEXT, DATE } = app.Sequelize;
|
||||
const { INTEGER, STRING, TEXT, DATE } = app.Sequelize;
|
||||
|
||||
const Unknown = app.model3.define('unknown', {
|
||||
const UnknownSN = app.model3.define('unknown-sn', {
|
||||
id: { type: INTEGER(8), primaryKey: true, autoIncrement: true },
|
||||
system_type: INTEGER(3),
|
||||
msg_id: STRING(30),
|
||||
sn_number: STRING(8),
|
||||
original_msg: TEXT,
|
||||
msg_data: TEXT,
|
||||
created_at: DATE,
|
||||
@@ -16,5 +17,5 @@ module.exports = (app) => {
|
||||
updatedAt: false,
|
||||
});
|
||||
|
||||
return Unknown;
|
||||
return UnknownSN;
|
||||
};
|
||||
@@ -306,7 +306,7 @@ class HomeService extends Service {
|
||||
async saveUnknown(form) {
|
||||
const { ctx } = this;
|
||||
try {
|
||||
const result = await ctx.model3.Unknown.create(form);
|
||||
const result = await ctx.model3.UnknownSN.create(form);
|
||||
return result || false;
|
||||
} catch (error) {
|
||||
const blockName = fileName + "--" + "saveUnknown";
|
||||
|
||||
Reference in New Issue
Block a user