[优化] 添加 OpenFlared API 支持,增强心跳和配置管理功能

This commit is contained in:
ryan
2026-06-01 16:41:46 +08:00
parent d09e64ddc6
commit df63b0113a
11 changed files with 821 additions and 2 deletions
+54
View File
@@ -0,0 +1,54 @@
package service
const (
FlaredWSConnectedLastSeenValue = "__OPENFLARE_FLARED_WS_CONNECTED__"
FlaredWSMessageTypeActiveConfig = "active_config"
FlaredWSMessageTypeForceSync = "force_sync"
FlaredWSMessageTypePong = "pong"
)
var DefaultFlaredWSHub = NewWSHub("flared")
func RegisterFlaredWSClient(nodeID string) *WSClient {
return DefaultFlaredWSHub.Register(nodeID)
}
func UnregisterFlaredWSClient(client *WSClient) {
DefaultFlaredWSHub.Unregister(client)
}
func DisconnectFlaredWSClient(nodeID string) {
DefaultFlaredWSHub.Disconnect(nodeID)
}
func IsFlaredWSConnected(nodeID string) bool {
return DefaultFlaredWSHub.IsConnected(nodeID)
}
func SendFlaredWSPong(nodeID string) bool {
return DefaultFlaredWSHub.SendMessage(nodeID, WSMessage{
Type: FlaredWSMessageTypePong,
})
}
func SendFlaredWSActiveConfig(nodeID string, activeConfig *ActiveConfigMeta) bool {
if activeConfig == nil {
return false
}
return DefaultFlaredWSHub.SendMessage(nodeID, WSMessage{
Type: FlaredWSMessageTypeActiveConfig,
Payload: activeConfig,
})
}
func BroadcastFlaredWSActiveConfig(activeConfig *ActiveConfigMeta) WSBroadcastResult {
if activeConfig == nil {
return WSBroadcastResult{}
}
result := DefaultFlaredWSHub.Broadcast(WSMessage{
Type: FlaredWSMessageTypeActiveConfig,
Payload: activeConfig,
})
return result
}