mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 22:06:38 +08:00
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
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
|
|
}
|