|
|
@ -169,7 +169,6 @@ |
|
|
|
<h3 class="card-title">客户端消息队列 - @address</h3> |
|
|
|
<div class="card-tools"> |
|
|
|
<span id="connection-status" class="badge badge-secondary">正在连接...</span> |
|
|
|
<span id="message-status" class="badge badge-info ml-2" style="display: none;">等待消息...</span> |
|
|
|
<button id="refreshLogFiles" class="btn btn-outline-primary btn-sm"> |
|
|
|
<i class="fas fa-sync-alt"></i> 刷新日志文件 |
|
|
|
</button> |
|
|
@ -519,40 +518,16 @@ |
|
|
|
function initializeEventSource() { |
|
|
|
const source = new EventSource(`/api/message/${encodeURIComponent(address)}/stream`); |
|
|
|
const statusBadge = $('#connection-status'); |
|
|
|
const messageStatusBadge = $('#message-status'); |
|
|
|
|
|
|
|
source.addEventListener('open', function(e) { |
|
|
|
console.log("SSE connection opened."); |
|
|
|
statusBadge.removeClass('badge-secondary badge-danger').addClass('badge-success').text('已连接'); |
|
|
|
messageStatusBadge.show().removeClass('badge-success badge-warning').addClass('badge-info').text('等待消息...'); |
|
|
|
|
|
|
|
// 重置数据和视图 |
|
|
|
sentMessagesData = []; |
|
|
|
receivedMessagesData = []; |
|
|
|
sentClusterize.update([]); |
|
|
|
receivedClusterize.update([]); |
|
|
|
}); |
|
|
|
|
|
|
|
source.addEventListener('update', function(e) { |
|
|
|
const data = JSON.parse(e.data); |
|
|
|
const isSent = data.type === 'sent'; |
|
|
|
|
|
|
|
// 更新消息状态 |
|
|
|
if (data.newCount > 0) { |
|
|
|
messageStatusBadge.removeClass('badge-info badge-warning').addClass('badge-success') |
|
|
|
.text(`收到 ${data.newCount} 条新${isSent ? '发送' : '接收'}消息`); |
|
|
|
|
|
|
|
// 3秒后恢复等待状态 |
|
|
|
setTimeout(() => { |
|
|
|
if (sentMessagesData.length === 0 && receivedMessagesData.length === 0) { |
|
|
|
messageStatusBadge.removeClass('badge-success').addClass('badge-info').text('等待消息...'); |
|
|
|
} else { |
|
|
|
messageStatusBadge.removeClass('badge-success').addClass('badge-warning') |
|
|
|
.text(`总计: 发送${sentMessagesData.length}条, 接收${receivedMessagesData.length}条`); |
|
|
|
} |
|
|
|
}, 3000); |
|
|
|
} |
|
|
|
|
|
|
|
const clusterize = isSent ? sentClusterize : receivedClusterize; |
|
|
|
const dataArray = isSent ? sentMessagesData : receivedMessagesData; |
|
|
|
const scrollArea = isSent ? $('#sentScrollArea') : $('#receivedScrollArea'); |
|
|
@ -587,7 +562,6 @@ |
|
|
|
|
|
|
|
source.addEventListener('error', function(e) { |
|
|
|
statusBadge.removeClass('badge-success').addClass('badge-danger').text('连接断开'); |
|
|
|
messageStatusBadge.hide(); |
|
|
|
console.error("SSE connection error/closed.", e); |
|
|
|
}); |
|
|
|
} |
|
|
|