Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConnectionID ¶
func ConnectionID(conn Connection) string
ConnectionID calculates the id of the given Connection
Types ¶
type Broadcaster ¶ added in v0.1.5
type Broadcaster interface { FromFeed(feed *event.Feed) error Broadcast(msg Message) error Register(conn broadcasted) bool Deregister(conn broadcasted) bool }
Broadcaster is an interface broadcasting stream message across all available connections
type Conn ¶ added in v0.1.5
type Conn interface { ID() string ReadNext() []byte Send(msg []byte) WriteLoop() ReadLoop() Close() error RemoteAddr() net.Addr }
Conn is a wrapper interface for websocket connections
type Connection ¶
Connection is an interface to abstract the actual websocket connection implementation
type Message ¶
type Message struct { // Type is the type of message Type MessageType `json:"type"` // Filter Filter MessageFilter `json:"filter"` // Values holds the results, optional as it's relevant for response Data interface{} `json:"data,omitempty"` }
Message represents an exporter message
type MessageFilter ¶
type MessageFilter struct { // From is the starting index of the desired data From int64 `json:"from"` // To is the ending index of the desired data To int64 `json:"to"` // Role is the duty type enum, optional as it's relevant for IBFT data Role DutyRole `json:"role,omitempty"` // PublicKey is optional, used for fetching decided messages or information about specific validator/operator PublicKey string `json:"publicKey,omitempty"` }
MessageFilter is a criteria for query in request messages and projection in responses
type MessageType ¶
type MessageType string
MessageType is the type of message being sent
const ( // TypeValidator is an enum for validator type messages TypeValidator MessageType = "validator" // TypeOperator is an enum for operator type messages TypeOperator MessageType = "operator" // TypeDecided is an enum for ibft type messages TypeDecided MessageType = "decided" // TypeError is an enum for error type messages TypeError MessageType = "error" )
type NetworkMessage ¶
type NetworkMessage struct { Msg Message Err error Conn Connection }
NetworkMessage wraps an actual message with more information
type OperatorsMessage ¶
type OperatorsMessage struct {
Data []storage.OperatorInformation `json:"data,omitempty"`
}
OperatorsMessage represents message for operators response
type QueryMessageHandler ¶ added in v0.1.2
type QueryMessageHandler func(nm *NetworkMessage)
QueryMessageHandler handles the given message
type ValidatorsMessage ¶
type ValidatorsMessage struct {
Data []storage.ValidatorInformation `json:"data,omitempty"`
}
ValidatorsMessage represents message for validators response
type WSClient ¶ added in v0.1.5
type WSClient struct {
// contains filtered or unexported fields
}
WSClient represents a client connection to be used in tests
func NewWSClient ¶ added in v0.1.5
NewWSClient creates a new instance of ws client
func (*WSClient) MessageCount ¶ added in v0.1.5
MessageCount returns the count of incoming messages
func (*WSClient) StartQuery ¶ added in v0.1.5
StartQuery initiates query requests
func (*WSClient) StartStream ¶ added in v0.1.5
StartStream initiates stream
type WebSocketServer ¶
type WebSocketServer interface { Start(addr string) error BroadcastFeed() *event.Feed UseQueryHandler(handler QueryMessageHandler) }
WebSocketServer is responsible for managing all
func NewWsServer ¶
func NewWsServer(ctx context.Context, logger *zap.Logger, handler QueryMessageHandler, mux *http.ServeMux) WebSocketServer
NewWsServer creates a new instance