Documentation ¶
Index ¶
- Constants
- type Channel
- func (ch *Channel) Broadcast(message []byte)
- func (ch *Channel) Count() int
- func (ch *Channel) Describe() et.Json
- func (ch *Channel) Low() string
- func (ch *Channel) NextTurn(queue string) *Client
- func (ch *Channel) QueueSubscribe(client *Client, queue string)
- func (ch *Channel) Subscribe(client *Client)
- func (ch *Channel) Unsubcribe(clientId string) error
- func (ch *Channel) Up() string
- type Client
- type Hub
- func (h *Hub) Close()
- func (h *Hub) ConnectHttp(w http.ResponseWriter, r *http.Request) (*Client, error)
- func (h *Hub) GetChannels() []*Channel
- func (h *Hub) GetClients() []*Client
- func (h *Hub) GetSubscribers(channel string) []*Client
- func (h *Hub) Mute(channel string, msg Message, ignored []string, from et.Json) error
- func (h *Hub) Publish(channel string, msg Message, ignored []string, from et.Json) error
- func (h *Hub) Queue(clientId string, channel, queue string) error
- func (h *Hub) RedisAdapter(params *RedisAdapterParams) error
- func (h *Hub) SendMessage(clientId string, msg Message) error
- func (h *Hub) SetName(name string)
- func (h *Hub) Start()
- func (h *Hub) Subscribe(clientId string, channel string) error
- func (h *Hub) Unsubscribe(clientId string, channel string) error
- type Message
- type MessageBroadcast
- type RedisAdapter
- type RedisAdapterParams
- type TpBroadcast
- type TpMessage
- type WsMessage
Constants ¶
const ( MSG_CLIENT_CONNECT = "Client connected %s to Hub:%s" MSG_CLIENT_DISCONNECT = "Client disconnected %s to Hub:%s" ERR_SERVER_NOT_FOUND = "Server not found" ERR_CLIENT_NOT_FOUND = "Client not found" ERR_CLIENT_IS_CLOSED = "Client is closed" ERR_NOT_WS_SERVICE = "Not websocket service" ERR_NOT_DEFINE_CLIENTID = "Not define clientId" ERR_NOT_DEFINE_USERNAME = "Not define username" ERR_NOT_CONNECT_WS = "Not connect socket" ERR_CHANNEL_NOT_FOUND = "Channel not found" ERR_CHANNEL_NOT_SUBSCRIBERS = "Channel not subscribers - %s" ERR_CHANNEL_EMPTY = "Channel is empty" ERR_QUEUE_EMPTY = "Queue is empty" ERR_PARAM_NOT_FOUND = "Param not found" ERR_CLIENT_ID_EMPTY = "Client id is empty" ERR_MESSAGE_UNFORMATTED = "Message unformatted" ERR_REDISADAPTER_NOT_FOUND = "Redis adapter not found" ERR_INVALID_ID = "Invalid id" ERR_INVALID_NAME = "Invalid name" PARAMS_UPDATED = "Params updated" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Channel ¶
type Channel struct { Name string `json:"name"` Group map[string]int `json:"group"` Subscribers []*Client `json:"subscribers"` }
* * Channel *
func (*Channel) Broadcast ¶ added in v0.0.177
* * Broadcast a message to all subscribers * @param message []byte *
func (*Channel) Count ¶ added in v0.0.177
* * Count return the number of subscribers * @return int *
func (*Channel) Describe ¶ added in v1.0.11
* * Describe return the channel name * @return et.Json *
func (*Channel) Low ¶ added in v0.0.177
* * Low return the channel name in lowercase * @return string *
func (*Channel) NextTurn ¶ added in v0.0.177
* * NextTurn return the next subscriber * @return *Client *
func (*Channel) QueueSubscribe ¶ added in v0.0.177
* * QueueSubscribe a client to channel * @param client *Client *
func (*Channel) Subscribe ¶ added in v0.0.177
* * Subscribe a client to channel * @param client *Client *
func (*Channel) Unsubcribe ¶
* * Unsubcribe a client from channel * @param clientId string * @return error *
type Client ¶
type Client struct { Created_at time.Time `json:"created_at"` Id string `json:"id"` Name string `json:"name"` Addr string `json:"addr"` Channels []string `json:"channels"` // contains filtered or unexported fields }
type Hub ¶
func (*Hub) ConnectHttp ¶ added in v1.0.7
* * ConnectHttp connect to the server using the http * @param w http.ResponseWriter * @param r *http.Request * @return *Client * @return error *
func (*Hub) GetChannels ¶ added in v1.0.11
* * GetChannels of the hub * @return []*Channel *
func (*Hub) GetClients ¶ added in v1.0.11
* * GetChannels of the hub * @return []*Channel *
func (*Hub) GetSubscribers ¶
* * GetSubscribers * @param channel string * @return []*Client *
func (*Hub) Mute ¶ added in v0.0.177
* * Mute a message to a channel * @param channel string * @param msg Message * @param ignored []string * @param from et.Json * @return error *
func (*Hub) Publish ¶
* * Publish a message to a channel * @param channel string * @param msg Message * @param ignored []string * @param from et.Json * @return error *
func (*Hub) Queue ¶ added in v1.0.11
* * Queue a client to hub channels * @param clientId string * @param channel string * @return error *
func (*Hub) RedisAdapter ¶ added in v0.0.177
func (h *Hub) RedisAdapter(params *RedisAdapterParams) error
* * RedisAdapter is a struct to manage the Redis connection * to broadcast messages to all clients in the cluster hub * @param params *RedisAdapterParams * @return error *
func (*Hub) SendMessage ¶
* * SendMessage * @param clientId string * @param msg Message * @return error *
type Message ¶ added in v0.0.177
type Message struct { Created_at time.Time `json:"created_at"` Id string `json:"id"` From et.Json `json:"from"` To string `json:"to"` Ignored []string `json:"ignored"` Tp TpMessage `json:"tp"` Channel string `json:"channel"` Queue string `json:"queue"` Data interface{} `json:"data"` }
func DecodeMessage ¶ added in v0.0.177
* * DecodeMessage * @param []byte * @return Message *
func NewMessage ¶ added in v0.0.177
* * NewMessage * @param et.Json * @param interface{} * @param TpMessage * @return Message *
func (Message) Encode ¶ added in v0.0.177
* * Encode return the message as byte array * @return []byte *
type MessageBroadcast ¶ added in v0.0.177
type MessageBroadcast struct { Kind TpBroadcast `json:"kind"` To string `json:"channel"` Msg Message `json:"msg"` Ignored []string `json:"ignored"` From et.Json `json:"from"` }
* * MessageBroadcast is a struct to manage the message to broadcast *
func (MessageBroadcast) Encode ¶ added in v0.0.177
func (m MessageBroadcast) Encode() ([]byte, error)
* * Encode return the message as byte array * @return []byte * @return error *
type RedisAdapter ¶ added in v0.0.177
type RedisAdapter struct {
// contains filtered or unexported fields
}
func NewRedisAdapter ¶ added in v0.0.177
func NewRedisAdapter(params *RedisAdapterParams) (*RedisAdapter, error)
* * NewRedisAdapter return a new RedisAdapter * @param params *RedisAdapterParams * @return *RedisAdapter * @return error *
func (*RedisAdapter) Broadcast ¶ added in v0.0.177
* * Broadcast a message to all clients in the cluster hub * @param to string * @param msg Message * @param ignored []string * @param from et.Json * @return error *
func (*RedisAdapter) Close ¶ added in v0.0.177
func (a *RedisAdapter) Close() error
* * Close the RedisAdapter * @return error *
type RedisAdapterParams ¶ added in v0.0.177
* * RedisAdapter is a struct to manage the Redis connection * to broadcast messages to all clients in the cluster hub *
type TpBroadcast ¶ added in v0.0.177
type TpBroadcast int
const ( BroadcastAll TpBroadcast = iota BroadcastDirect )