logMap = new HashMap<>();
+ logMap.put("msgId", String.format("0x%04x", msgId));
+ logMap.put("phone", header.getTerminalPhone());
+ logMap.put("flowId", header.getFlowId());
+ logMap.put("summary", "TCP Message Received");
+ // Add raw object if needed, or string representation
+ logMap.put("details", packageData.toString());
+ apiLogService.broadcastLog("TCP", logMap);
+ }
MessageHandler handler = MessageHandlerFactory.getInstance(msgId);
if(handler != null){
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
index 1d5fe0b..786dc61 100644
--- a/src/main/resources/static/index.html
+++ b/src/main/resources/static/index.html
@@ -94,6 +94,7 @@
Waiting for data...
[{{ log.time }}]
+ {{ log.source }}
{{ log.data }}
@@ -140,16 +141,23 @@
setTimeout(() => this.connectSSE(), 3000);
};
- this.eventSource.addEventListener('api-log', (event) => {
+ this.eventSource.addEventListener('log-event', (event) => {
const data = JSON.parse(event.data);
this.addLog(data);
});
},
addLog(data) {
const now = new Date().toLocaleTimeString();
+ const source = data.source || 'INFO';
+ // Remove source/timestamp from display data to avoid clutter if desired, or just show all
+ const displayData = { ...data };
+ delete displayData.source;
+ delete displayData.timestamp;
+
this.logs.unshift({
time: now,
- data: typeof data === 'string' ? data : JSON.stringify(data)
+ source: source,
+ data: JSON.stringify(displayData)
});
// Keep last 50 logs
if (this.logs.length > 50) this.logs.pop();