From 31d10195cae458158301f4d0d7df4bb6aab355b5 Mon Sep 17 00:00:00 2001 From: ryan Date: Mon, 1 Jun 2026 16:01:58 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E6=8F=90=E5=8D=87WS?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E7=A8=B3=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openflare_server/service/agent.go | 3 +++ openflare_server/service/node.go | 9 ++++++--- openflare_server/service/relay_ws.go | 4 ++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/openflare_server/service/agent.go b/openflare_server/service/agent.go index a487e891..a3827cfb 100644 --- a/openflare_server/service/agent.go +++ b/openflare_server/service/agent.go @@ -465,6 +465,9 @@ func computeNodeStatus(node *model.Node) string { if node == nil { return NodeStatusOffline } + if node.NodeType == "tunnel_relay" && IsRelayWSConnected(node.NodeID) { + return NodeStatusOnline + } if IsAgentWSConnected(node.NodeID) { return NodeStatusOnline } diff --git a/openflare_server/service/node.go b/openflare_server/service/node.go index 6c4b41bf..d00d1c67 100644 --- a/openflare_server/service/node.go +++ b/openflare_server/service/node.go @@ -359,12 +359,15 @@ func buildNodeView(node *model.Node) *NodeView { } func nodeViewLastSeenAt(node *model.Node) any { - if node != nil && IsAgentWSConnected(node.NodeID) { - return AgentWSConnectedLastSeenValue - } if node == nil { return time.Time{} } + if node.NodeType == "tunnel_relay" && IsRelayWSConnected(node.NodeID) { + return RelayWSConnectedLastSeenValue + } + if IsAgentWSConnected(node.NodeID) { + return AgentWSConnectedLastSeenValue + } return node.LastSeenAt } diff --git a/openflare_server/service/relay_ws.go b/openflare_server/service/relay_ws.go index 38fc1e5e..ddaad9c6 100644 --- a/openflare_server/service/relay_ws.go +++ b/openflare_server/service/relay_ws.go @@ -1,5 +1,9 @@ package service +const ( + RelayWSConnectedLastSeenValue = "__OPENFLARE_WS_CONNECTED__" +) + var DefaultRelayWSHub = NewWSHub("relay") func RegisterRelayWSClient(nodeID string) *WSClient {