Documentation
¶
Index ¶
- type Client
- type Config
- type Conn
- type IRouter
- type Message
- type Reply
- type Server
- type SubchannelMessage
- type SubchannelReply
- type SubchannelRouter
- func (sr *SubchannelRouter) Channel() string
- func (sr *SubchannelRouter) IsClosed() bool
- func (sr *SubchannelRouter) Perform(c *Client, msg *Message) error
- func (sr *SubchannelRouter) Register(c *Client, msg *Message) error
- func (sr *SubchannelRouter) Reply(subReply *SubchannelReply)
- func (sr *SubchannelRouter) Run()
- func (sr *SubchannelRouter) Stop()
- func (sr *SubchannelRouter) Unregister(c *Client, msg *Message) error
- type SubchannelWorker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a middleman between the websocket connection and the hub.
func (*Client) Connection ¶
Connection return websocket connection
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn is an middleman between the websocket connection and the hub.
type IRouter ¶
type IRouter interface {
Channel() string
Register(*Client, *Message) error
Unregister(*Client, *Message) error
Perform(*Client, *Message) error
IsClosed() bool
Run()
Stop()
}
IRouter router interface
type Message ¶
type Message struct {
Command string `json:"command"`
Channel string `json:"channel"`
Data json.RawMessage `json:"data"`
}
Message Message
type Reply ¶
type Reply struct {
Type string `json:"type,omitempty"`
Channel string `json:"channel,omitempty"`
Data json.RawMessage `json:"data"`
}
Reply Reply
type Server ¶
type Server struct {
Conf *Config
// contains filtered or unexported fields
}
Server Websocket server
func (*Server) RegisterRouter ¶
RegisterRouter register a router which implement IRouter interface
type SubchannelMessage ¶
type SubchannelMessage struct {
Subchannel string
Message json.RawMessage
}
SubchannelMessage subchannel message
type SubchannelReply ¶
type SubchannelReply struct {
Subchannel string
Data json.RawMessage
}
SubchannelReply subchannel reply
type SubchannelRouter ¶
type SubchannelRouter struct {
// contains filtered or unexported fields
}
SubchannelRouter subchannel router, used for subchannel message
func NewSubchannelRouter ¶
func NewSubchannelRouter(channel string, worker SubchannelWorker) *SubchannelRouter
NewSubchannelRouter create a new subchannel router
func (*SubchannelRouter) Channel ¶
func (sr *SubchannelRouter) Channel() string
Channel interface implementation
func (*SubchannelRouter) IsClosed ¶
func (sr *SubchannelRouter) IsClosed() bool
IsClosed interface implementation
func (*SubchannelRouter) Perform ¶
func (sr *SubchannelRouter) Perform(c *Client, msg *Message) error
Perform interface implementation
func (*SubchannelRouter) Register ¶
func (sr *SubchannelRouter) Register(c *Client, msg *Message) error
Register interface implementation
func (*SubchannelRouter) Reply ¶
func (sr *SubchannelRouter) Reply(subReply *SubchannelReply)
Reply interface implementation
func (*SubchannelRouter) Unregister ¶
func (sr *SubchannelRouter) Unregister(c *Client, msg *Message) error
Unregister interface implementation
type SubchannelWorker ¶
type SubchannelWorker interface {
SetRouter(*SubchannelRouter)
Run()
Stop()
}
SubchannelWorker subchannel worker interface