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) DelListener(eventName string)
- func (c *Client) Dial(addr string) error
- func (c *Client) DialWithHeaders(addr string, h http.Header) error
- func (c *Client) HandlePing() error
- func (c *Client) Read() (err error)
- func (c *Client) SetListener(eventName string, f ListenerFunc)
- func (c *Client) Write(eventName string, payload interface{}) (err error)
- type ClientAdapter
- type ClientConfiguration
- type ClientOption
- type ListenerFunc
- type Manager
- func (m *Manager) AutoRegisterClient(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, adapter ClientAdapter) (err error)
- func (m *Manager) UnregisterClient(k interface{})
- type ManagerConfiguration
Constants ¶
View Source
const ( EventNameDisconnect = "astiws.disconnect" PingPeriod = (pingWait * 9) / 10 )
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"` }
type BodyMessageRead ¶
type BodyMessageRead struct { BodyMessage Payload json.RawMessage `json:"payload"` }
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
}
func NewClient ¶
func NewClient(c ClientConfiguration, options ...ClientOption) *Client
func (*Client) AddListener ¶
func (c *Client) AddListener(eventName string, f ListenerFunc)
func (*Client) DelListener ¶
func (*Client) HandlePing ¶
func (*Client) SetListener ¶
func (c *Client) SetListener(eventName string, f ListenerFunc)
type ClientAdapter ¶
type ClientAdapter func(c *Client)
type ClientConfiguration ¶
type ClientConfiguration struct {
MaxMessageSize int `toml:"max_message_size"`
}
type ClientOption ¶
type ClientOption func(client *Client)
func WithErrHandler ¶
func WithErrHandler(errHandler func(err error)) ClientOption
type ListenerFunc ¶
type ListenerFunc func(c *Client, eventName string, payload json.RawMessage) error
type Manager ¶
func NewManager ¶
func NewManager(c ManagerConfiguration) *Manager
func (*Manager) AutoRegisterClient ¶
func (*Manager) CountClients ¶
func (*Manager) RegisterClient ¶
func (*Manager) ServeHTTP ¶
func (m *Manager) ServeHTTP(w http.ResponseWriter, r *http.Request, adapter ClientAdapter) (err error)
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{})
astiws.disconnected event is a good place to call this function
type ManagerConfiguration ¶
type ManagerConfiguration struct {
MaxMessageSize int `toml:"max_message_size"`
}
Click to show internal directories.
Click to hide internal directories.