mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-04 15:06:37 +08:00
[优化] 添加 OpenFlared API 支持,增强心跳和配置管理功能
This commit is contained in:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user