Documentation ¶
Index ¶
- func ConnectionID(conn Connection) string
- func DecidedAPIData(msgs ...*message.SignedMessage) (interface{}, error)
- func HandleDecidedQuery(logger *zap.Logger, qbftStorage qbftstorage.QBFTStore, nm *NetworkMessage)
- func HandleErrorQuery(logger *zap.Logger, nm *NetworkMessage)
- func HandleUnknownQuery(logger *zap.Logger, nm *NetworkMessage)
- type Broadcaster
- type Conn
- type Connection
- type DutyRole
- type Message
- type MessageFilter
- type MessageType
- type NetworkMessage
- type QueryMessageHandler
- type WSClient
- type WebSocketServer
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
func DecidedAPIData ¶ added in v0.3.0
func DecidedAPIData(msgs ...*message.SignedMessage) (interface{}, error)
DecidedAPIData creates a new message from the given message TODO: avoid converting to v0 once explorer is upgraded
func HandleDecidedQuery ¶ added in v0.3.0
func HandleDecidedQuery(logger *zap.Logger, qbftStorage qbftstorage.QBFTStore, nm *NetworkMessage)
HandleDecidedQuery handles TypeDecided queries.
func HandleErrorQuery ¶ added in v0.3.0
func HandleErrorQuery(logger *zap.Logger, nm *NetworkMessage)
HandleErrorQuery handles TypeError queries.
func HandleUnknownQuery ¶ added in v0.3.0
func HandleUnknownQuery(logger *zap.Logger, nm *NetworkMessage)
HandleUnknownQuery handles unknown queries.
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
func NewDecidedAPIMsg ¶ added in v0.3.0
func NewDecidedAPIMsg(msgs ...*message.SignedMessage) Message
NewDecidedAPIMsg creates a new message from the given message TODO: avoid converting to v0 once explorer is upgraded
type MessageFilter ¶
type MessageFilter struct { // From is the starting index of the desired data From uint64 `json:"from"` // To is the ending index of the desired data To uint64 `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 QueryMessageHandler ¶ added in v0.1.2
type QueryMessageHandler func(nm *NetworkMessage)
QueryMessageHandler handles the given message
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, withPing bool) WebSocketServer
NewWsServer creates a new instance