Documentation ¶
Overview ¶
Package sse implements Server-Sent Events that supports multiple channels.
Server-sent events is a method of continuously sending data from a server to the browser, rather than repeatedly requesting it.
Examples ¶
Basic usage of sse package.
s := sse.NewServer(nil) defer s.Shutdown() http.Handle("/events/", s)
Index ¶
- type Channel
- type Client
- type Message
- type Options
- type Server
- func (s *Server) Channels() []string
- func (s *Server) ClientCount() int
- func (s *Server) CloseChannel(name string)
- func (s *Server) GetChannel(name string) (*Channel, bool)
- func (s *Server) HasChannel(name string) bool
- func (s *Server) Restart()
- func (s *Server) SendMessage(channelName string, message *Message)
- func (s *Server) ServeHTTP(response http.ResponseWriter, request *http.Request)
- func (s *Server) Shutdown()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Channel ¶
type Channel struct {
// contains filtered or unexported fields
}
Channel represents a server sent events channel.
func (*Channel) ClientCount ¶
ClientCount returns the number of clients connected to this channel.
func (*Channel) Close ¶
func (c *Channel) Close()
Close closes the channel and disconnect all clients.
func (*Channel) LastEventID ¶ added in v1.1.0
LastEventID returns the ID of the last message sent.
func (*Channel) SendMessage ¶
SendMessage broadcast a message to all clients in a channel.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client represents a web browser connection.
func (*Client) LastEventID ¶ added in v1.1.0
LastEventID returns the ID of the last message sent.
func (*Client) SendMessage ¶
SendMessage sends a message to client.
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
Message represents a event source message.
func NewMessage ¶
NewMessage creates an event source message.
func SimpleMessage ¶
SimpleMessage creates a simple event source message.
type Options ¶
type Options struct { // RetryInterval change EventSource default retry interval (milliseconds). RetryInterval int // Headers allow to set custom headers (useful for CORS support). Headers map[string]string // ChannelNameFunc allow to create custom channel names. // Default channel name is the request path. ChannelNameFunc func(*http.Request) string // All usage logs end up in Logger Logger *log.Logger }
Options holds server configurations.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents a server sent events server.
func (*Server) ClientCount ¶
ClientCount returns the number of clients connected to this server.
func (*Server) CloseChannel ¶
CloseChannel closes a channel.
func (*Server) GetChannel ¶
GetChannel returns the channel associated with name or nil if not found.
func (*Server) HasChannel ¶
HasChannel returns true if the channel associated with name exists.
func (*Server) Restart ¶
func (s *Server) Restart()
Restart closes all channels and clients and allow new connections.
func (*Server) SendMessage ¶
SendMessage broadcast a message to all clients in a channel. If channelName is an empty string, it will broadcast the message to all channels.