Documentation
¶
Index ¶
- func IsAuthError(err error) bool
- type AuthError
- type Client
- func (c *Client) Close() error
- func (c *Client) Connect() error
- func (c *Client) Disconnect() error
- func (c *Client) GetConfig() *Config
- func (c *Client) GetConfigVersion() int
- func (c *Client) OnAuthError(callback func(statusCode int, message string))
- func (c *Client) OnConnect(callback func() error)
- func (c *Client) OnTokenUpdate(callback func(token string, exitNodes []ExitNode))
- func (c *Client) RegisterHandler(messageType string, handler MessageHandler)
- func (c *Client) SendMessage(messageType string, data interface{}) error
- func (c *Client) SendMessageInterval(messageType string, data interface{}, interval time.Duration, maxAttempts int) (stop func(), update func(newData interface{}))
- func (c *Client) StartPingMonitor()
- type ClientOption
- type Config
- type ExitNode
- type MessageHandler
- type TLSConfig
- type TokenResponse
- type WSMessage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAuthError ¶
IsAuthError checks if an error is an authentication error
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(ID, secret, userToken, orgId, endpoint string, pingInterval time.Duration, pingTimeout time.Duration, opts ...ClientOption) (*Client, error)
NewClient creates a new websocket client
func (*Client) Disconnect ¶ added in v1.4.0
Disconnect cleanly closes the websocket connection and suspends message intervals, but allows reconnecting later.
func (*Client) GetConfigVersion ¶ added in v1.4.0
GetConfigVersion returns the current config version
func (*Client) OnAuthError ¶
func (*Client) OnTokenUpdate ¶
func (*Client) RegisterHandler ¶
func (c *Client) RegisterHandler(messageType string, handler MessageHandler)
RegisterHandler registers a handler for a specific message type
func (*Client) SendMessage ¶
SendMessage sends a message through the WebSocket connection
func (*Client) SendMessageInterval ¶
func (*Client) StartPingMonitor ¶ added in v1.4.0
func (c *Client) StartPingMonitor()
StartPingMonitor starts the ping monitor goroutine. This should be called after the client is registered and connected. It is safe to call multiple times - only the first call will start the monitor.
type ClientOption ¶
type ClientOption func(*Client)
func WithBaseURL ¶
func WithBaseURL(url string) ClientOption
WithBaseURL sets the base URL for the client
func WithPingDataProvider ¶ added in v1.4.0
func WithPingDataProvider(fn func() map[string]any) ClientOption
WithPingDataProvider sets a callback to provide additional data for ping messages
func WithTLSConfig ¶
func WithTLSConfig(config TLSConfig) ClientOption
WithTLSConfig sets the TLS configuration for the client
type Config ¶
type Config struct {
ID string
Secret string
Endpoint string
TlsClientCert string // legacy PKCS12 file path
UserToken string // optional user token for websocket authentication
OrgID string // optional organization ID for websocket authentication
}
this is not json anymore
type MessageHandler ¶
type MessageHandler func(message WSMessage)
type TLSConfig ¶
type TLSConfig struct {
// New separate certificate support
ClientCertFile string
ClientKeyFile string
CAFiles []string
// Existing PKCS12 support (deprecated)
PKCS12File string
}
TLSConfig holds TLS configuration options