Documentation
¶
Index ¶
- func Handle(ctx context.Context, conn *websocket.Conn, h Handler)
- func NewTestingEnv(t *testing.T, newHandler func() Handler) (*websocket.Conn, *websocket.Conn, func())
- type Handler
- type Logger
- type RealtimeHandler
- func (h *RealtimeHandler) Close()
- func (h *RealtimeHandler) CurrentParticipant() *models.Participant
- func (h *RealtimeHandler) CurrentSession() *models.Session
- func (h *RealtimeHandler) GetClientID() string
- func (h *RealtimeHandler) GetModules() []modules.Module
- func (h *RealtimeHandler) GetSessions() *models.SessionStore
- func (h *RealtimeHandler) HandleConnect(conn *websocket.Conn)
- func (h *RealtimeHandler) HandleCustomMessage(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleDisconnect(_ error)
- func (h *RealtimeHandler) HandleEntityAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentGetID(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentGetName(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentList(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentSubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentTypeAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentUnsubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityComponentUpdate(ctx context.Context, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleEntityUpdatePose(ctx context.Context, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleParticipantJoin(ctx context.Context, handleFrame func(), respond hwebsocket.ResponseSender, ...) error
- func (h *RealtimeHandler) HandlePing(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandlePingResponse(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleReceipt(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleSignedLatency(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
- func (h *RealtimeHandler) HandleWithModule(ctx context.Context, m modules.Module, respond hwebsocket.ResponseSender, ...) error
- func (h *RealtimeHandler) IdleTimeout() time.Duration
- func (h *RealtimeHandler) Receiver() hwebsocket.Receiver
- func (h *RealtimeHandler) SendSyncClock(ctx context.Context, respond hwebsocket.ResponseSender) error
- func (h *RealtimeHandler) Sender() hwebsocket.Sender
- func (h *RealtimeHandler) SyncClockInterval() time.Duration
- type TestResponseSender
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Handler ¶
type Handler interface {
// Handles a ping request.
HandlePing(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
HandlePingResponse(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a signed ping request.
HandleSignedLatency(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a client connection.
HandleConnect(conn *websocket.Conn)
// Handles a request to join a session.
HandleParticipantJoin(ctx context.Context, handleFrame func(), sender hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a client's disconnection.
HandleDisconnect(error)
// Handles a request to create an entity.
HandleEntityAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to delete an entity and its associated resources.
HandleEntityDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles an entity pose update.
HandleEntityUpdatePose(ctx context.Context, msg hwebsocket.Msg) error
// Handles a custom message.
HandleCustomMessage(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to add an entity component type.
HandleEntityComponentTypeAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to get the name of an entity component.
HandleEntityComponentGetName(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to get the id of an entity component.
HandleEntityComponentGetID(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// handles a request to add an entity component.
HandleEntityComponentAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to delete an entity component.
HandleEntityComponentDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to update an entity component.
HandleEntityComponentUpdate(ctx context.Context, msg hwebsocket.Msg) error
// Handles a request to list entity components.
HandleEntityComponentList(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to subscribe to event related to a registered entity
// component.
HandleEntityComponentSubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to unsubscribe to an entity component.
HandleEntityComponentUnsubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handles a request to pass the proof of work receipt to network credit service.
HandleReceipt(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Handle a message with a module.
HandleWithModule(ctx context.Context, module modules.Module, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
// Sends a sync clock message to the client.
SendSyncClock(ctx context.Context, send hwebsocket.ResponseSender) error
// Creates a message receiver used to receive incoming messages.
Receiver() hwebsocket.Receiver
// Creates a message sender passed in service methods in order to send
// messages.
Sender() hwebsocket.Sender
// Closes the service and releases its allocated resources.
Close()
// The interval between each sync clock message sent to the connected
// client.
SyncClockInterval() time.Duration
// The time a client is idle before being disconnected.
IdleTimeout() time.Duration
// Returns the session store.
GetSessions() *models.SessionStore
// Returns the modules.
GetModules() []modules.Module
// The currently joined session.
CurrentSession() *models.Session
// The current participant.
CurrentParticipant() *models.Participant
// Get ClientID
GetClientID() string
}
Handler represents a hagall handler.
func HandlerWithMetrics ¶
type RealtimeHandler ¶
type RealtimeHandler struct {
// The interval between each sync clock message sent to the connected
// client.
ClientSyncClockInterval time.Duration
// The time a client is idle before being disconnected.
ClientIdleTimeout time.Duration
// The duration of a frame.
FrameDuration time.Duration
// The store that contains all the server sessions.
Sessions *models.SessionStore
// The module that expand Hagall features.
Modules []modules.Module
FeatureFlags featureflag.FeatureFlag
// channel for sending incoming receipts to ReceiptHandler goroutine
ReceiptChan chan ncsclient.ReceiptPayload
PrivateKey *ecdsa.PrivateKey
// contains filtered or unexported fields
}
RealtimeHandler represents a service that manages multiple client connections and relays their actions in realtime.
func (*RealtimeHandler) Close ¶
func (h *RealtimeHandler) Close()
func (*RealtimeHandler) CurrentParticipant ¶
func (h *RealtimeHandler) CurrentParticipant() *models.Participant
func (*RealtimeHandler) CurrentSession ¶
func (h *RealtimeHandler) CurrentSession() *models.Session
func (*RealtimeHandler) GetClientID ¶
func (h *RealtimeHandler) GetClientID() string
func (*RealtimeHandler) GetModules ¶
func (h *RealtimeHandler) GetModules() []modules.Module
func (*RealtimeHandler) GetSessions ¶
func (h *RealtimeHandler) GetSessions() *models.SessionStore
func (*RealtimeHandler) HandleConnect ¶
func (h *RealtimeHandler) HandleConnect(conn *websocket.Conn)
func (*RealtimeHandler) HandleCustomMessage ¶
func (h *RealtimeHandler) HandleCustomMessage(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleDisconnect ¶
func (h *RealtimeHandler) HandleDisconnect(_ error)
func (*RealtimeHandler) HandleEntityAdd ¶
func (h *RealtimeHandler) HandleEntityAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentAdd ¶
func (h *RealtimeHandler) HandleEntityComponentAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentDelete ¶
func (h *RealtimeHandler) HandleEntityComponentDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentGetID ¶
func (h *RealtimeHandler) HandleEntityComponentGetID(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentGetName ¶
func (h *RealtimeHandler) HandleEntityComponentGetName(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentList ¶
func (h *RealtimeHandler) HandleEntityComponentList(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentSubscribe ¶
func (h *RealtimeHandler) HandleEntityComponentSubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentTypeAdd ¶
func (h *RealtimeHandler) HandleEntityComponentTypeAdd(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentUnsubscribe ¶
func (h *RealtimeHandler) HandleEntityComponentUnsubscribe(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityComponentUpdate ¶
func (h *RealtimeHandler) HandleEntityComponentUpdate(ctx context.Context, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityDelete ¶
func (h *RealtimeHandler) HandleEntityDelete(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleEntityUpdatePose ¶
func (h *RealtimeHandler) HandleEntityUpdatePose(ctx context.Context, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleParticipantJoin ¶
func (h *RealtimeHandler) HandleParticipantJoin(ctx context.Context, handleFrame func(), respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandlePing ¶
func (h *RealtimeHandler) HandlePing(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandlePingResponse ¶ added in v0.5.8
func (h *RealtimeHandler) HandlePingResponse(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleReceipt ¶
func (h *RealtimeHandler) HandleReceipt(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleSignedLatency ¶ added in v0.5.8
func (h *RealtimeHandler) HandleSignedLatency(ctx context.Context, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) HandleWithModule ¶
func (h *RealtimeHandler) HandleWithModule(ctx context.Context, m modules.Module, respond hwebsocket.ResponseSender, msg hwebsocket.Msg) error
func (*RealtimeHandler) IdleTimeout ¶
func (h *RealtimeHandler) IdleTimeout() time.Duration
func (*RealtimeHandler) Receiver ¶
func (h *RealtimeHandler) Receiver() hwebsocket.Receiver
func (*RealtimeHandler) SendSyncClock ¶
func (h *RealtimeHandler) SendSyncClock(ctx context.Context, respond hwebsocket.ResponseSender) error
func (*RealtimeHandler) Sender ¶
func (h *RealtimeHandler) Sender() hwebsocket.Sender
func (*RealtimeHandler) SyncClockInterval ¶
func (h *RealtimeHandler) SyncClockInterval() time.Duration
type TestResponseSender ¶
type TestResponseSender struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.