Documentation
¶
Overview ¶
Package websocket to handling connection and session by messages and there subject
Index ¶
- Constants
- type Client
- type Message
- func (msg *Message) Answer(subject string, body interface{}) error
- func (msg *Message) AnswerEverybody(subject string, body interface{}) error
- func (msg *Message) AnswerSession(subject string, body interface{}) error
- func (msg *Message) Replay(body interface{}) error
- func (msg *Message) ReplayEverybody(body interface{}) error
- func (msg *Message) ReplaySession(body interface{}) error
- func (msg *Message) Validate() (bool, error)
- type MessageHandleFunc
- type Server
- type SessionManager
- type WebsocketHandlerService
- func (ws *WebsocketHandlerService) Close()
- func (ws *WebsocketHandlerService) Listen(path string)
- func (ws *WebsocketHandlerService) SendAll(msg *Message)
- func (ws *WebsocketHandlerService) SendSession(id uuid.UUID, msg *Message)
- func (ws *WebsocketHandlerService) SetHandler(subject string, f MessageHandleFunc)
Constants ¶
const SessionMessageInit = "session_init"
SessionMessageInit subject in messages
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client of Websocket Server Connection
type Message ¶
type Message struct { ID uuid.UUID `json:"id,omitempty"` Session uuid.UUID `json:"-"` From *Client `json:"-"` Subject string `json:"subject,omitempty"` Body interface{} `json:"body,omitempty"` // contains filtered or unexported fields }
Message which send over websocket
func (*Message) AnswerEverybody ¶
AnswerEverybody to replay all connection on Server
func (*Message) AnswerSession ¶
AnswerSession to replay all of current Session
func (*Message) ReplayEverybody ¶
ReplayEverybody to replay all connection on Server
func (*Message) ReplaySession ¶
ReplaySession to replay all of current Session
type MessageHandleFunc ¶
type MessageHandleFunc func(msg *Message)
MessageHandleFunc for handling messages
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server of websocket
func NewServer ¶
func NewServer(msgChanIn chan *Message, sessionManager *SessionManager) *Server
NewServer to get a new Server for websockets
type SessionManager ¶
SessionManager to handle reconnected websocket
func NewSessionManager ¶
func NewSessionManager() *SessionManager
NewSessionManager to get a new SessionManager
func (*SessionManager) HandleMessage ¶
func (s *SessionManager) HandleMessage(msg *Message) bool
HandleMessage of client for Session
func (*SessionManager) Init ¶
func (s *SessionManager) Init(c *Client)
Init Session for given Client
type WebsocketHandlerService ¶
type WebsocketHandlerService struct { FallbackHandler MessageHandleFunc // contains filtered or unexported fields }
WebsocketHandlerService to handle every Message on there Subject by Handlers
func NewWebsocketHandlerService ¶
func NewWebsocketHandlerService() *WebsocketHandlerService
NewWebsocketHandlerService with Websocket Server
func (*WebsocketHandlerService) Listen ¶
func (ws *WebsocketHandlerService) Listen(path string)
Listen on net/http server at `path` and start running handling
func (*WebsocketHandlerService) SendAll ¶
func (ws *WebsocketHandlerService) SendAll(msg *Message)
SendAll see Server.SendAll
func (*WebsocketHandlerService) SendSession ¶
func (ws *WebsocketHandlerService) SendSession(id uuid.UUID, msg *Message)
SendSession see message to all connection of one session
func (*WebsocketHandlerService) SetHandler ¶
func (ws *WebsocketHandlerService) SetHandler(subject string, f MessageHandleFunc)
SetHandler for a message type by subject