Documentation
¶
Index ¶
- Constants
- Variables
- func Module(scope string) fx.Option
- type Adapter
- type Backend
- type Client
- type ClientManager
- type Context
- func (ctx *Context) Error(code RPCErrorCode, data string) error
- func (ctx *Context) GetClient() Client
- func (ctx *Context) GetMeta() *Metadata
- func (ctx *Context) GetReader() io.Reader
- func (ctx *Context) GetRequest() *RPCRequest
- func (ctx *Context) Notify(eventName string, payload interface{}) error
- func (ctx *Context) Respond(res *RPCResponse) error
- func (ctx *Context) Send(data []byte) error
- type Endpoint
- type Metadata
- type Options
- type Packet
- type Params
- type PollerPool
- type RPCAdapter
- func (ra *RPCAdapter) HandleMessage(c Client) error
- func (ra *RPCAdapter) PrepareNotification(eventName string, payload interface{}) ([]byte, error)
- func (ra *RPCAdapter) PrepareResponse(res *RPCResponse) ([]byte, error)
- func (ra *RPCAdapter) Register(method string, fn RPCFunc) error
- func (ra *RPCAdapter) Unregister(method string)
- type RPCAdapterOpt
- type RPCError
- type RPCErrorCode
- type RPCFunc
- type RPCRequest
- type RPCResponse
- type RequestHandler
- type RequestQueue
- type RequestTask
- type Runner
- type RunnerFunc
- type WebSocketServer
Constants ¶
View Source
const ( ErrorCode_InvalidRequest RPCErrorCode = 1000 ErrorCode_NotFound = 2000 ErrorCode_InvalidParams = 3000 ErrorCode_InvalidParams_Invalid_Arguments = 3001 ErrorCode_InvalidParams_Insufficient_Arguments = 3002 ErrorCode_InternalError = 4000 ErrorCode_ServerError = 5000 )
View Source
const RequestQueueSize = 32
Variables ¶
View Source
var (
ErrAdapterNotImplemented = errors.New("adapter: not implemented")
)
View Source
var (
ErrBackendNotImplemented = errors.New("backend: not implemented")
)
View Source
var (
ErrConnectionClosed = errors.New("client: conn closed")
)
View Source
var (
ErrMethodNotFound = errors.New("rpc: method not found")
)
Functions ¶
Types ¶
type Adapter ¶
type Adapter interface { HandleMessage(Client) error PrepareNotification(eventName string, payload interface{}) ([]byte, error) PrepareResponse(*RPCResponse) ([]byte, error) Register(method string, fn RPCFunc) error Unregister(method string) }
func NewAdapter ¶
func NewAdapter() Adapter
type Backend ¶
type Backend interface { ParseRequest(r io.Reader) (*RPCRequest, error) PrepareNotification(eventName string, payload interface{}) ([]byte, error) PrepareResponse(*RPCResponse) ([]byte, error) }
func NewBackend ¶
func NewBackend() Backend
type Client ¶
type Client interface { GetOptions() *Options GetConnection() net.Conn GetClientID() uuid.UUID GetMeta() *Metadata GetReader() io.Reader Send(data []byte) error Respond(res *RPCResponse) error Notify(eventName string, payload interface{}) error Resume() error CreateRunner(func(*Runner)) *Runner Release() Close() }
type ClientManager ¶
type ClientManager struct {
// contains filtered or unexported fields
}
func NewClientManager ¶
func NewClientManager() *ClientManager
func (*ClientManager) Close ¶
func (clientMgr *ClientManager) Close()
func (*ClientManager) Register ¶
func (clientMgr *ClientManager) Register(c Client)
func (*ClientManager) Run ¶
func (clientMgr *ClientManager) Run()
func (*ClientManager) Unregister ¶
func (clientMgr *ClientManager) Unregister(c Client)
type Context ¶
type Context struct {
// contains filtered or unexported fields
}
func NewContext ¶
func NewContext(client Client, req *RPCRequest) *Context
func (*Context) GetRequest ¶
func (ctx *Context) GetRequest() *RPCRequest
func (*Context) Respond ¶
func (ctx *Context) Respond(res *RPCResponse) error
type Endpoint ¶
type Endpoint struct {
// contains filtered or unexported fields
}
func NewEndpoint ¶
func (*Endpoint) GetAdapter ¶ added in v0.0.4
type Metadata ¶
type Metadata struct {
// contains filtered or unexported fields
}
func NewMetadata ¶
func NewMetadata() *Metadata
type Options ¶
type Options struct { Adapter Adapter MaxClients int OnConnected func(Client) error OnDisconnected func(Client) error OnMessage func(Client) error }
func NewOptions ¶
func NewOptions() *Options
type Params ¶
type Params struct { fx.In Lifecycle fx.Lifecycle Logger *zap.Logger HTTPServer *http_server.HTTPServer }
type PollerPool ¶
type PollerPool struct {
// contains filtered or unexported fields
}
func NewPollerPool ¶
func NewPollerPool() *PollerPool
func (*PollerPool) Add ¶
func (pp *PollerPool) Add(c Client) error
func (*PollerPool) Remove ¶
func (pp *PollerPool) Remove(c Client) error
func (*PollerPool) Wait ¶
func (pp *PollerPool) Wait(fn func([]Client))
type RPCAdapter ¶
type RPCAdapter struct {
// contains filtered or unexported fields
}
func NewRPCAdapter ¶
func NewRPCAdapter(opts ...RPCAdapterOpt) *RPCAdapter
func (*RPCAdapter) HandleMessage ¶
func (ra *RPCAdapter) HandleMessage(c Client) error
func (*RPCAdapter) PrepareNotification ¶
func (ra *RPCAdapter) PrepareNotification(eventName string, payload interface{}) ([]byte, error)
func (*RPCAdapter) PrepareResponse ¶
func (ra *RPCAdapter) PrepareResponse(res *RPCResponse) ([]byte, error)
func (*RPCAdapter) Unregister ¶
func (ra *RPCAdapter) Unregister(method string)
type RPCAdapterOpt ¶
type RPCAdapterOpt func(*RPCAdapter)
func WithRPCBackend ¶
func WithRPCBackend(b Backend) RPCAdapterOpt
type RPCError ¶
type RPCError struct { Code RPCErrorCode `json:"code"` Message string `json:"message"` Data interface{} `json:"data,omitempty"` }
func NewError ¶
func NewError(code RPCErrorCode, data interface{}) *RPCError
type RPCErrorCode ¶
type RPCErrorCode int32
type RPCRequest ¶
type RPCResponse ¶
type RequestHandler ¶
type RequestQueue ¶
type RequestQueue struct {
// contains filtered or unexported fields
}
func NewRequestQueue ¶
func NewRequestQueue() *RequestQueue
func (*RequestQueue) Consume ¶
func (rq *RequestQueue) Consume(fn RequestHandler) error
func (*RequestQueue) Push ¶
func (rq *RequestQueue) Push(c *Context)
type RequestTask ¶
type RequestTask struct {
Ctx *Context
}
type Runner ¶
type Runner struct { IsRunning bool // contains filtered or unexported fields }
func NewRunner ¶
func NewRunner(fn RunnerFunc) *Runner
func (*Runner) WaitForClose ¶
func (r *Runner) WaitForClose()
type RunnerFunc ¶
type RunnerFunc func(*Runner)
type WebSocketServer ¶
type WebSocketServer struct {
// contains filtered or unexported fields
}
func (*WebSocketServer) CreateEndpoint ¶
func (wss *WebSocketServer) CreateEndpoint(uri string, opts *Options) (*Endpoint, error)
func (*WebSocketServer) GetEndpoint ¶ added in v0.0.4
func (wss *WebSocketServer) GetEndpoint(uri string) *Endpoint
func (*WebSocketServer) RemoveEndpoint ¶
func (wss *WebSocketServer) RemoveEndpoint(ep *Endpoint) error
Click to show internal directories.
Click to hide internal directories.