Documentation ¶
Index ¶
- Constants
- type BodyMessage
- type BodyMessageRead
- type Client
- func (c *Client) AddListener(eventName string, f ListenerFunc)
- func (c *Client) Close() (err error)
- func (c *Client) Context() context.Context
- func (c *Client) DelListener(eventName string)
- func (c *Client) Dial(addr string) error
- func (c *Client) DialAndRead(w *astikit.Worker, o DialAndReadOptions)
- func (c *Client) DialWithHeaders(addr string, h http.Header) (err error)
- func (c *Client) ExtendConnection() error
- func (c *Client) Read() error
- func (c *Client) SetListener(eventName string, f ListenerFunc)
- func (c *Client) SetMessageHandler(h MessageHandler)
- func (c *Client) WithContext(ctx context.Context) *Client
- func (c *Client) Write(eventName string, payload interface{}) error
- func (c *Client) WriteJSON(m interface{}) (err error)
- func (c *Client) WriteText(m []byte) (err error)
- type ClientAdapter
- type ClientConfiguration
- type DialAndReadOptions
- type ListenerFunc
- type Manager
- func (m *Manager) AutoRegisterClient(c *Client)
- func (m *Manager) AutoUnregisterClient(c *Client)
- func (m *Manager) Client(k interface{}) (c *Client, ok bool)
- func (m *Manager) Clients(fn func(k interface{}, c *Client) error)
- func (m *Manager) Close() error
- func (m *Manager) CountClients() int
- func (m *Manager) Loop(fn func(k interface{}, c *Client))
- func (m *Manager) RegisterClient(k interface{}, c *Client)
- func (m *Manager) ServeHTTP(w http.ResponseWriter, r *http.Request, a ClientAdapter) (err error)
- func (m *Manager) UnregisterClient(k interface{})
- type ManagerConfiguration
- type MessageHandler
Constants ¶
const ( EventNameDisconnect = "astiws.disconnect" PingPeriod = (pingWait * 9) / 10 )
Constants
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BodyMessage ¶
type BodyMessage struct { EventName string `json:"event_name"` Payload interface{} `json:"payload"` }
BodyMessage represents the body of a message
type BodyMessageRead ¶
type BodyMessageRead struct { BodyMessage Payload json.RawMessage `json:"payload"` }
BodyMessageRead represents the body of a message for read purposes Indeed when reading the body, we need the payload to be a json.RawMessage
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents a websocket client
func NewClient ¶
func NewClient(c ClientConfiguration, l astikit.StdLogger) *Client
NewClient creates a new client
func NewClientWithContext ¶ added in v1.0.1
func NewClientWithContext(ctx context.Context, cfg ClientConfiguration, l astikit.StdLogger) (c *Client)
NewClientWithContext creates a new client with a context
func (*Client) AddListener ¶
func (c *Client) AddListener(eventName string, f ListenerFunc)
AddListener adds a listener
func (*Client) DelListener ¶
DelListener deletes a listener
func (*Client) DialAndRead ¶ added in v1.1.0
func (c *Client) DialAndRead(w *astikit.Worker, o DialAndReadOptions)
DialAndReadOptions dials and read with options It's the responsibility of the caller to close the Client
func (*Client) DialWithHeaders ¶
DialWithHeader dials an addr with specific headers
func (*Client) ExtendConnection ¶ added in v1.0.1
ExtendConnection extends the connection
func (*Client) SetListener ¶
func (c *Client) SetListener(eventName string, f ListenerFunc)
SetListener sets a listener
func (*Client) SetMessageHandler ¶ added in v1.0.1
func (c *Client) SetMessageHandler(h MessageHandler)
SetMessageHandler sets the message handler
func (*Client) WithContext ¶ added in v1.0.1
WithContext updates the client's context
type ClientAdapter ¶
ClientAdapter represents a client adapter func
type ClientConfiguration ¶
type ClientConfiguration struct {
MaxMessageSize int `toml:"max_message_size"`
}
ClientConfiguration represents a client configuration
type DialAndReadOptions ¶ added in v1.1.0
type DialAndReadOptions struct { Addr string Header http.Header OnDial func() error OnReadError func(err error) }
DialAndReadOptions represents dial and read options
type ListenerFunc ¶
type ListenerFunc func(c *Client, eventName string, payload json.RawMessage) error
ListenerFunc represents a listener callback
type Manager ¶
Manager represents a websocket manager
func NewManager ¶
func NewManager(c ManagerConfiguration, l astikit.StdLogger) *Manager
NewManager creates a new manager
func (*Manager) AutoRegisterClient ¶
AutoRegisterClient auto registers a new client
func (*Manager) AutoUnregisterClient ¶ added in v1.0.1
AutoUnregisterClient auto unregisters a client
func (*Manager) Clients ¶
Clients executes a function on every client. It stops if an error is returned.
func (*Manager) CountClients ¶
CountClients returns the number of connected clients
func (*Manager) RegisterClient ¶
RegisterClient registers a new client
func (*Manager) ServeHTTP ¶
func (m *Manager) ServeHTTP(w http.ResponseWriter, r *http.Request, a ClientAdapter) (err error)
ServeHTTP handles an HTTP request and returns an error unlike an http.Handler We don't want to register the client yet, since we may want to index the map of clients with an information we don't have yet
func (*Manager) UnregisterClient ¶
func (m *Manager) UnregisterClient(k interface{})
UnregisterClient unregisters a client astiws.disconnected event is a good place to call this function
type ManagerConfiguration ¶
type ManagerConfiguration struct { CheckOrigin func(r *http.Request) bool `toml:"-"` MaxMessageSize int `toml:"max_message_size"` }
ManagerConfiguration represents a manager configuration
type MessageHandler ¶ added in v1.0.1
MessageHandler represents a message handler