Documentation ¶
Index ¶
- Constants
- Variables
- func MakeBackend() *mapkv
- type AuthType
- 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)
- func (hub *Hub) UseInteractiveAuth(fn InteractiveFn)
- type HubOptions
- type InteractiveFn
- type LocalClient
- func (c *LocalClient) Close()
- func (c *LocalClient) MakeRequest(cmd string, data map[string]any) (Message, <-chan any)
- func (c *LocalClient) Options() ClientOptions
- func (c *LocalClient) Run()
- func (c *LocalClient) SendJSON(data any)
- 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" CmdInternalClientID = "_uid" )
Commands
View Source
const ProtoVersion = "v10"
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(any) 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 Logger *slog.Logger }
ClientOptions is a list of tunable options for clients
type ErrCode ¶
type ErrCode string
const ( ErrServerError ErrCode = "server error" ErrInvalidFmt ErrCode = "invalid message format" ErrMissingParam ErrCode = "required parameter missing" ErrUnknownCmd ErrCode = "unknown command" ErrAuthNotInit ErrCode = "authentication not initialized" ErrAuthFailed ErrCode = "authentication failed" ErrAuthRequired ErrCode = "authentication required" ErrAuthNotRequired ErrCode = "authentication not required" ErrAuthNotSupported ErrCode = "authentication method not supported" )
type Hub ¶
type Hub struct {
// contains filtered or unexported fields
}
func (*Hub) CreateWebsocketClient ¶
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) SetOptions ¶
func (hub *Hub) SetOptions(options HubOptions)
func (*Hub) UseInteractiveAuth ¶
func (hub *Hub) UseInteractiveAuth(fn InteractiveFn)
type HubOptions ¶
type InteractiveFn ¶
type LocalClient ¶
type LocalClient struct {
// contains filtered or unexported fields
}
func NewLocalClient ¶
func NewLocalClient(options ClientOptions) *LocalClient
func (*LocalClient) Close ¶
func (c *LocalClient) Close()
func (*LocalClient) MakeRequest ¶
func (*LocalClient) Options ¶
func (c *LocalClient) Options() ClientOptions
func (*LocalClient) Run ¶
func (c *LocalClient) Run()
func (*LocalClient) SendJSON ¶
func (c *LocalClient) SendJSON(data any)
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 any)
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
Source Files ¶
Click to show internal directories.
Click to hide internal directories.