Documentation ¶
Index ¶
- type Broker
- type Client
- type DefaultClient
- func (c *DefaultClient) Channel() chan Message
- func (c *DefaultClient) Get(key string) any
- func (c *DefaultClient) HasSubscription(sub string) bool
- func (c *DefaultClient) Id() string
- func (c *DefaultClient) Set(key string, value any)
- func (c *DefaultClient) Subscribe(subs ...string)
- func (c *DefaultClient) Subscriptions() map[string]struct{}
- func (c *DefaultClient) Unsubscribe(subs ...string)
- type Message
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Broker ¶
type Broker struct {
// contains filtered or unexported fields
}
Broker defines a struct for managing subscriptions clients.
func (*Broker) ClientById ¶
ClientById finds a registered client by its id.
Returns non-nil error when client with clientId is not registered.
func (*Broker) Unregister ¶
Unregister removes a single client by its id.
If client with clientId doesn't exist, this method does nothing.
type Client ¶
type Client interface { // Id Returns the unique id of the client. Id() string // Channel returns the client's communication channel. Channel() chan Message // Subscriptions returns all subscriptions to which the client has subscribed to. Subscriptions() map[string]struct{} // Subscribe subscribes the client to the provided subscriptions list. Subscribe(subs ...string) // Unsubscribe unsubscribes the client from the provided subscriptions list. Unsubscribe(subs ...string) // HasSubscription checks if the client is subscribed to `sub`. HasSubscription(sub string) bool // Set stores any value to the client's context. Set(key string, value any) // Get retrieves the key value from the client's context. Get(key string) any }
Client is an interface for a generic subscription client.
type DefaultClient ¶
type DefaultClient struct {
// contains filtered or unexported fields
}
DefaultClient defines a generic subscription client.
func NewDefaultClient ¶
func NewDefaultClient() *DefaultClient
NewDefaultClient creates and returns a new DefaultClient instance.
func (*DefaultClient) Channel ¶
func (c *DefaultClient) Channel() chan Message
Channel implements the Client.Channel interface method.
func (*DefaultClient) Get ¶
func (c *DefaultClient) Get(key string) any
Get implements the Client.Get interface method.
func (*DefaultClient) HasSubscription ¶
func (c *DefaultClient) HasSubscription(sub string) bool
HasSubscription implements the Client.HasSubscription interface method.
func (*DefaultClient) Id ¶
func (c *DefaultClient) Id() string
Id implements the Client.Id interface method.
func (*DefaultClient) Set ¶
func (c *DefaultClient) Set(key string, value any)
Set implements the Client.Set interface method.
func (*DefaultClient) Subscribe ¶
func (c *DefaultClient) Subscribe(subs ...string)
Subscribe implements the Client.Subscribe interface method.
Empty subscriptions (aka. "") are ignored.
func (*DefaultClient) Subscriptions ¶
func (c *DefaultClient) Subscriptions() map[string]struct{}
Subscriptions implements the Client.Subscriptions interface method.
func (*DefaultClient) Unsubscribe ¶
func (c *DefaultClient) Unsubscribe(subs ...string)
Unsubscribe implements the Client.Unsubscribe interface method.
If subs is not set, this method removes all registered client's subscriptions.