Documentation ¶
Index ¶
- Constants
- Variables
- func MakeBackend() *mapkv
- func ServeWs(hub *Hub, w http.ResponseWriter, r *http.Request)
- type Client
- type ClientOptions
- type Driver
- type ErrCode
- type Error
- type Hello
- type Hub
- func (hub *Hub) AddClient(client Client)
- func (hub *Hub) Close()
- func (hub *Hub) CreateWebsocketClient(w http.ResponseWriter, r *http.Request, options ClientOptions)
- func (hub *Hub) RemoveClient(client Client)
- func (hub *Hub) Run()
- func (hub *Hub) SendMessage(msg Message)
- func (hub *Hub) SetAuthenticated(id int64, authenticated bool) error
- func (hub *Hub) SetOptions(options HubOptions)
- type HubOptions
- type LocalClient
- func (c *LocalClient) Close()
- func (c *LocalClient) MakeRequest(cmd string, data map[string]interface{}) (Message, <-chan interface{})
- func (c *LocalClient) Options() ClientOptions
- func (m *LocalClient) Run()
- func (c *LocalClient) SendJSON(data interface{})
- func (c *LocalClient) SendMessage(data []byte)
- func (c *LocalClient) SetKeySubCallback(key string, callback SubscriptionCallback) int64
- func (c *LocalClient) SetPrefixSubCallback(key string, callback SubscriptionCallback) int64
- func (c *LocalClient) SetUID(uid int64)
- func (c *LocalClient) UID() int64
- func (c *LocalClient) UnsetCallback(id int64)
- func (c *LocalClient) Wait()
- type Message
- type Push
- type Request
- type Response
- type SubscriptionCallback
- type WebsocketClient
Constants ¶
View Source
const ( CmdProtoVersion = "version" CmdReadKey = "kget" CmdReadBulk = "kget-bulk" CmdReadPrefix = "kget-all" CmdWriteKey = "kset" CmdWriteBulk = "kset-bulk" CmdRemoveKey = "kdel" CmdSubscribeKey = "ksub" CmdSubscribePrefix = "ksub-prefix" CmdUnsubscribeKey = "kunsub" CmdUnsubscribePrefix = "kunsub-prefix" CmdListKeys = "klist" CmdAuthRequest = "klogin" CmdAuthChallenge = "kauth" )
Commands
View Source
const ( ErrServerError = "server error" ErrInvalidFmt = "invalid message format" ErrMissingParam = "required parameter missing" ErrUnknownCmd = "unknown command" ErrAuthNotInit = "authentication not initialized" ErrAuthFailed = "authentication failed" ErrAuthRequired = "authentication required" )
View Source
const ProtoVersion = "v8"
Variables ¶
View Source
var (
ErrClientNotFound = errors.New("client not found")
)
View Source
var (
ErrorKeyNotFound = errors.New("key not found")
)
Functions ¶
func MakeBackend ¶
func MakeBackend() *mapkv
Types ¶
type Client ¶
type Client interface { Options() ClientOptions Close() SendMessage([]byte) SendJSON(interface{}) SetUID(int64) UID() int64 }
Client is a middleman between the websocket connection and the hub.
type ClientOptions ¶
type ClientOptions struct { // Adds a prefix to all key operations to restrict them to a namespace Namespace string }
ClientOptions is a list of tweakable options for clients
type Hub ¶
type Hub struct {
// contains filtered or unexported fields
}
func (*Hub) CreateWebsocketClient ¶ added in v8.0.3
func (hub *Hub) CreateWebsocketClient(w http.ResponseWriter, r *http.Request, options ClientOptions)
CreateWebsocketClient upgrades a HTTP request to websocket and makes it a client for the hub
func (*Hub) RemoveClient ¶
func (*Hub) SendMessage ¶
func (*Hub) SetAuthenticated ¶ added in v8.0.1
func (*Hub) SetOptions ¶
func (hub *Hub) SetOptions(options HubOptions)
type HubOptions ¶
type HubOptions struct {
Password string
}
type LocalClient ¶
type LocalClient struct { Pushes chan Push // contains filtered or unexported fields }
func NewLocalClient ¶
func NewLocalClient(options ClientOptions, log *zap.Logger) *LocalClient
func (*LocalClient) Close ¶
func (c *LocalClient) Close()
func (*LocalClient) MakeRequest ¶
func (c *LocalClient) MakeRequest(cmd string, data map[string]interface{}) (Message, <-chan interface{})
func (*LocalClient) Options ¶
func (c *LocalClient) Options() ClientOptions
func (*LocalClient) Run ¶
func (m *LocalClient) Run()
func (*LocalClient) SendJSON ¶
func (c *LocalClient) SendJSON(data interface{})
func (*LocalClient) SendMessage ¶
func (c *LocalClient) SendMessage(data []byte)
func (*LocalClient) SetKeySubCallback ¶
func (c *LocalClient) SetKeySubCallback(key string, callback SubscriptionCallback) int64
func (*LocalClient) SetPrefixSubCallback ¶
func (c *LocalClient) SetPrefixSubCallback(key string, callback SubscriptionCallback) int64
func (*LocalClient) SetUID ¶
func (c *LocalClient) SetUID(uid int64)
func (*LocalClient) UID ¶
func (c *LocalClient) UID() int64
func (*LocalClient) UnsetCallback ¶
func (c *LocalClient) UnsetCallback(id int64)
func (*LocalClient) Wait ¶
func (c *LocalClient) Wait()
type SubscriptionCallback ¶
type WebsocketClient ¶
type WebsocketClient struct {
// contains filtered or unexported fields
}
func (*WebsocketClient) Close ¶
func (c *WebsocketClient) Close()
func (*WebsocketClient) Options ¶
func (c *WebsocketClient) Options() ClientOptions
func (*WebsocketClient) SendJSON ¶
func (c *WebsocketClient) SendJSON(data interface{})
func (*WebsocketClient) SendMessage ¶
func (c *WebsocketClient) SendMessage(data []byte)
func (*WebsocketClient) SetUID ¶
func (c *WebsocketClient) SetUID(uid int64)
func (*WebsocketClient) UID ¶
func (c *WebsocketClient) UID() int64
Click to show internal directories.
Click to hide internal directories.