Files
OpenFlare/openflare_server/service/flared_ws.go
T

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
}