Documentation ¶
Index ¶
- Constants
- Variables
- func ConvertLuaTable(lv *lua.LTable) map[string]interface{}
- func ConvertMap(l *lua.LState, data map[string]interface{}) *lua.LTable
- func NewAuthenticationService(logger *zap.Logger, config Config, db *sql.DB, statService StatsService, ...) *authenticationService
- func NewConfig() *config
- func NewConsoleLogger(output *os.File, verbose bool) *zap.Logger
- func NewDashboardService(logger *zap.Logger, multiLogger *zap.Logger, version string, config Config, ...) *dashboardService
- func NewJSONLogger(output *os.File, verbose bool) *zap.Logger
- func NewLogger(config Config) *zap.Logger
- func NewLuaContext(l *lua.LState, env *lua.LTable, mode ExecutionMode, uid uuid.UUID, ...) *lua.LTable
- func NewMessageRouterService(registry *SessionRegistry) *messageRouterService
- func NewMultiLogger(loggers ...*zap.Logger) *zap.Logger
- func NewPipeline(config Config, db *sql.DB, tracker Tracker, matchmaker Matchmaker, ...) *pipeline
- func NewPresenceNotifier(logger *zap.Logger, name string, tracker Tracker, messageRouter MessageRouter) *presenceNotifier
- func NewSession(logger *zap.Logger, config Config, userID uuid.UUID, handle string, ...) *session
- func OpenOs(L *lua.LState) int
- func RuntimeAfterHook(logger *zap.Logger, runtime *Runtime, jsonpbMarshaler *jsonpb.Marshaler, ...)
- func RuntimeAfterHookAuthentication(logger *zap.Logger, runtime *Runtime, jsonpbMarshaler *jsonpb.Marshaler, ...)
- func SetupLogging(config Config) (*zap.Logger, *zap.Logger)
- func StorageFetch(logger *zap.Logger, db *sql.DB, caller uuid.UUID, keys []*StorageKey) ([]*StorageData, Error_Code, error)
- func StorageList(logger *zap.Logger, db *sql.DB, caller uuid.UUID, userID []byte, bucket string, ...) ([]*StorageData, []byte, Error_Code, error)
- func StorageWrite(logger *zap.Logger, db *sql.DB, caller uuid.UUID, data []*StorageData) ([]*StorageKey, Error_Code, error)
- func UsersBan(logger *zap.Logger, db *sql.DB, userIds [][]byte, handles []string) error
- type ApplePurchaseProviderConfig
- type BuiltinModule
- type Callbacks
- type Config
- type DatabaseConfig
- type ExecutionMode
- type GooglePurchaseProviderConfig
- type GroupCreateParam
- type LogConfig
- type Matchmaker
- type MatchmakerKey
- type MatchmakerProfile
- type MatchmakerService
- func (m *MatchmakerService) Add(sessionID uuid.UUID, userID uuid.UUID, meta PresenceMeta, requiredCount int64) (uuid.UUID, map[MatchmakerKey]*MatchmakerProfile)
- func (m *MatchmakerService) Remove(sessionID uuid.UUID, userID uuid.UUID, ticket uuid.UUID) error
- func (m *MatchmakerService) RemoveAll(sessionID uuid.UUID)
- func (m *MatchmakerService) UpdateAll(sessionID uuid.UUID, meta PresenceMeta)
- type MessageRouter
- type NNotification
- type NakamaModule
- type NakamaxModule
- type NotificationConfig
- type NotificationService
- func (n *NotificationService) NotificationSend(notifications []*NNotification) error
- func (n *NotificationService) NotificationsList(userID uuid.UUID, limit int64, cursor []byte) ([]*NNotification, []byte, error)
- func (n *NotificationService) NotificationsRemove(userID uuid.UUID, notificationIDs [][]byte) error
- type Presence
- type PresenceID
- type PresenceMeta
- type PurchaseConfig
- type PurchaseService
- func (p *PurchaseService) ValidateApplePurchase(userID uuid.UUID, purchase *iap.ApplePurchase) *iap.PurchaseVerifyResponse
- func (p *PurchaseService) ValidateGooglePurchaseProduct(userID uuid.UUID, purchase *iap.GooglePurchase) *iap.PurchaseVerifyResponse
- func (p *PurchaseService) ValidateGooglePurchaseSubscription(userID uuid.UUID, purchase *iap.GooglePurchase) *iap.PurchaseVerifyResponse
- type Runtime
- func (r *Runtime) GetRuntimeCallback(e ExecutionMode, key string) *lua.LFunction
- func (r *Runtime) InvokeFunctionAfter(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, ...) error
- func (r *Runtime) InvokeFunctionBefore(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, ...) (map[string]interface{}, error)
- func (r *Runtime) InvokeFunctionHTTP(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, ...) (map[string]interface{}, error)
- func (r *Runtime) InvokeFunctionRPC(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, ...) ([]byte, error)
- func (r *Runtime) NewStateThread() (*lua.LState, context.CancelFunc)
- func (r *Runtime) Stop()
- type RuntimeConfig
- type SelfUpdateOp
- type SessionConfig
- type SessionRegistry
- type SocialConfig
- type SocialConfigSteam
- type StatsService
- type StorageData
- type StorageKey
- type Tracker
- type TrackerService
- func (t *TrackerService) AddDiffListener(f func([]Presence, []Presence))
- func (t *TrackerService) CheckLocalByIDTopicUser(sessionID uuid.UUID, topic string, userID uuid.UUID) bool
- func (t *TrackerService) Count() int
- func (t *TrackerService) ListByTopic(topic string) []Presence
- func (t *TrackerService) ListByTopicUser(topic string, userID uuid.UUID) []Presence
- func (t *TrackerService) ListLocalByTopic(topic string) []Presence
- func (t *TrackerService) Stop()
- func (t *TrackerService) Track(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta)
- func (t *TrackerService) Untrack(sessionID uuid.UUID, topic string, userID uuid.UUID)
- func (t *TrackerService) UntrackAll(sessionID uuid.UUID)
- func (t *TrackerService) Update(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta) error
- func (t *TrackerService) UpdateAll(sessionID uuid.UUID, meta PresenceMeta)
- type TransportConfig
Constants ¶
const CALLBACKS = "runtime_callbacks"
Variables ¶
var RUNTIME_MESSAGES = map[string]string{
"*server.AuthenticateRequest_Device": "authenticaterequest_device",
"*server.AuthenticateRequest_Custom": "authenticaterequest_custom",
"*server.AuthenticateRequest_Email_": "authenticaterequest_email",
"*server.AuthenticateRequest_Facebook": "authenticaterequest_facebook",
"*server.AuthenticateRequest_Google": "authenticaterequest_google",
"*server.AuthenticateRequest_Steam": "authenticaterequest_steam",
"*server.AuthenticateRequest_GameCenter_": "authenticaterequest_gamecenter",
"*server.Envelope_Logout": "logout",
"*server.Envelope_Link": "tlink",
"*server.Envelope_Unlink": "tunlink",
"*server.Envelope_SelfFetch": "tselffetch",
"*server.Envelope_SelfUpdate": "tselfupdate",
"*server.Envelope_UsersFetch": "tusersfetch",
"*server.Envelope_FriendsAdd": "tfriendsadd",
"*server.Envelope_FriendsRemove": "tfriendsremove",
"*server.Envelope_FriendsBlock": "tfriendsblock",
"*server.Envelope_FriendsList": "tfriendslist",
"*server.Envelope_GroupsCreate": "tgroupscreate",
"*server.Envelope_GroupsUpdate": "tgroupsupdate",
"*server.Envelope_GroupsRemove": "tgroupsremove",
"*server.Envelope_GroupsSelfList": "tgroupsselflist",
"*server.Envelope_GroupsFetch": "tgroupsfetch",
"*server.Envelope_GroupsList": "tgroupslist",
"*server.Envelope_GroupUsersList": "tgroupuserslist",
"*server.Envelope_GroupsJoin": "tgroupsjoin",
"*server.Envelope_GroupsLeave": "tgroupsleave",
"*server.Envelope_GroupUsersAdd": "tgroupusersadd",
"*server.Envelope_GroupUsersKick": "tgroupuserskick",
"*server.Envelope_GroupUsersPromote": "tgroupuserspromote",
"*server.Envelope_TopicsJoin": "ttopicsjoin",
"*server.Envelope_TopicsLeave": "ttopicsleave",
"*server.Envelope_TopicMessageSend": "ttopicmessagesend",
"*server.Envelope_TopicMessageAck": "ttopicmessageack",
"*server.Envelope_TopicMessagesList": "ttopicmessageslist",
"*server.Envelope_MatchmakeAdd": "tmatchmakeadd",
"*server.Envelope_MatchmakeTicket": "tmatchmaketicket",
"*server.Envelope_MatchmakeRemove": "tmatchmakeremove",
"*server.Envelope_MatchCreate": "tmatchcreate",
"*server.Envelope_MatchesJoin": "tmatchesjoin",
"*server.Envelope_MatchDataSend": "matchdatasend",
"*server.Envelope_MatchesLeave": "tmatchesleave",
"*server.Envelope_StorageList": "tstoragelist",
"*server.Envelope_StorageFetch": "tstoragefetch",
"*server.Envelope_StorageWrite": "tstoragewrite",
"*server.Envelope_StorageRemove": "tstorageremove",
"*server.Envelope_LeaderboardsList": "tleaderboardslist",
"*server.Envelope_LeaderboardRecordsWrite": "tleaderboardrecordswrite",
"*server.Envelope_LeaderboardRecordsFetch": "tleaderboardrecordsfetch",
"*server.Envelope_LeaderboardRecordsList": "tleaderboardrecordslist",
"*server.Envelope_Rpc": "trpc",
"*server.Envelope_NotificationsList": "tnotificationslist",
"*server.Envelope_NotificationsRemove": "tnotificationsremove",
}
Functions ¶
func ConvertLuaTable ¶ added in v0.13.0
func ConvertLuaTable(lv *lua.LTable) map[string]interface{}
func ConvertMap ¶ added in v0.13.0
func ConvertMap(l *lua.LState, data map[string]interface{}) *lua.LTable
func NewAuthenticationService ¶
func NewAuthenticationService(logger *zap.Logger, config Config, db *sql.DB, statService StatsService, registry *SessionRegistry, socialClient *social.Client, pipeline *pipeline, runtime *Runtime) *authenticationService
NewAuthenticationService creates a new AuthenticationService
func NewConfig ¶
func NewConfig() *config
NewConfig constructs a Config struct which represents server settings.
func NewConsoleLogger ¶ added in v0.12.2
func NewDashboardService ¶ added in v1.0.0
func NewDashboardService(logger *zap.Logger, multiLogger *zap.Logger, version string, config Config, statsService StatsService) *dashboardService
NewDashboardService creates a new dashboardService
func NewLuaContext ¶ added in v0.13.0
func NewLuaContext(l *lua.LState, env *lua.LTable, mode ExecutionMode, uid uuid.UUID, handle string, sessionExpiry int64) *lua.LTable
func NewMessageRouterService ¶
func NewMessageRouterService(registry *SessionRegistry) *messageRouterService
func NewPipeline ¶
func NewPipeline(config Config, db *sql.DB, tracker Tracker, matchmaker Matchmaker, messageRouter MessageRouter, registry *SessionRegistry, socialClient *social.Client, runtime *Runtime, purchaseService *PurchaseService, notificationService *NotificationService) *pipeline
NewPipeline creates a new Pipeline
func NewPresenceNotifier ¶
func NewPresenceNotifier(logger *zap.Logger, name string, tracker Tracker, messageRouter MessageRouter) *presenceNotifier
NewPresenceNotifier creates a new PresenceNotifier
func NewSession ¶
func NewSession(logger *zap.Logger, config Config, userID uuid.UUID, handle string, lang string, expiry int64, websocketConn *websocket.Conn, unregister func(s *session)) *session
NewSession creates a new session which encapsulates a socket connection
func RuntimeAfterHook ¶ added in v0.13.0
func RuntimeAfterHookAuthentication ¶ added in v0.13.0
func StorageFetch ¶ added in v0.13.0
func StorageFetch(logger *zap.Logger, db *sql.DB, caller uuid.UUID, keys []*StorageKey) ([]*StorageData, Error_Code, error)
func StorageList ¶ added in v1.0.0
func StorageWrite ¶ added in v0.13.0
func StorageWrite(logger *zap.Logger, db *sql.DB, caller uuid.UUID, data []*StorageData) ([]*StorageKey, Error_Code, error)
Types ¶
type ApplePurchaseProviderConfig ¶ added in v1.0.0
type ApplePurchaseProviderConfig struct { Password string `yaml:"password" json:"password" usage:"In-App Purchase password"` Production bool `yaml:"production" json:"production" usage:"If set, the server will try Production environment then sandbox."` TimeoutMs int `yaml:"timeout_ms" json:"timeout_ms" usage:"Apple connection timeout in milliseconds"` }
type BuiltinModule ¶ added in v0.13.0
type BuiltinModule interface {
Loader(l *lua.LState) int
}
type Config ¶
type Config interface { GetName() string GetDataDir() string GetPort() int GetDashboardPort() int GetDB() []string GetLog() *LogConfig GetSession() *SessionConfig GetTransport() *TransportConfig GetDatabase() *DatabaseConfig GetSocial() *SocialConfig GetRuntime() *RuntimeConfig GetPurchase() *PurchaseConfig }
Config interface is the Nakama Core configuration
type DatabaseConfig ¶
type DatabaseConfig struct { ConnMaxLifetimeMs int `` /* 173-byte string literal not displayed */ MaxOpenConns int `yaml:"max_open_conns" json:"max_open_conns" usage:"Maximum number of allowed open connections to the database."` MaxIdleConns int `yaml:"max_idle_conns" json:"max_idle_conns" usage:"Maximum number of allowed open but unused connections to the database."` }
DatabaseConfig is configuration relevant to the Database storage
func NewDatabaseConfig ¶
func NewDatabaseConfig() *DatabaseConfig
NewDatabaseConfig creates a new DatabaseConfig struct
type ExecutionMode ¶ added in v0.13.0
type ExecutionMode int
const ( RPC ExecutionMode = iota BEFORE AFTER HTTP JOB LEADERBOARD_RESET )
func (ExecutionMode) String ¶ added in v0.13.0
func (e ExecutionMode) String() string
type GooglePurchaseProviderConfig ¶ added in v1.0.0
type GooglePurchaseProviderConfig struct { PackageName string `yaml:"package" json:"package" usage:"Android package name"` ServiceKeyFilePath string `yaml:"service_key_file" json:"service_key_file" usage:"Absolute file path to the service key JSON file."` TimeoutMs int `yaml:"timeout_ms" json:"timeout_ms" usage:"Google connection timeout in milliseconds"` }
type GroupCreateParam ¶ added in v1.0.0
type LogConfig ¶ added in v1.0.0
type LogConfig struct { Verbose bool `yaml:"verbose" json:"verbose" usage:"Turn verbose logging on"` Stdout bool `yaml:"stdout" json:"stdout" usage:"Log to stdout instead of file"` }
LogConfig is configuration relevant to logging levels and output
func NewLogConfig ¶ added in v1.0.0
func NewLogConfig() *LogConfig
NewLogConfig creates a new LogConfig struct
type Matchmaker ¶ added in v0.13.0
type Matchmaker interface { Add(sessionID uuid.UUID, userID uuid.UUID, meta PresenceMeta, requiredCount int64) (uuid.UUID, map[MatchmakerKey]*MatchmakerProfile) Remove(sessionID uuid.UUID, userID uuid.UUID, ticket uuid.UUID) error RemoveAll(sessionID uuid.UUID) UpdateAll(sessionID uuid.UUID, meta PresenceMeta) }
type MatchmakerKey ¶ added in v0.13.0
type MatchmakerKey struct { ID PresenceID UserID uuid.UUID Ticket uuid.UUID }
type MatchmakerProfile ¶ added in v0.13.0
type MatchmakerProfile struct { Meta PresenceMeta RequiredCount int64 }
type MatchmakerService ¶ added in v0.13.0
func NewMatchmakerService ¶ added in v0.13.0
func NewMatchmakerService(name string) *MatchmakerService
func (*MatchmakerService) Add ¶ added in v0.13.0
func (m *MatchmakerService) Add(sessionID uuid.UUID, userID uuid.UUID, meta PresenceMeta, requiredCount int64) (uuid.UUID, map[MatchmakerKey]*MatchmakerProfile)
func (*MatchmakerService) Remove ¶ added in v0.13.0
func (m *MatchmakerService) Remove(sessionID uuid.UUID, userID uuid.UUID, ticket uuid.UUID) error
func (*MatchmakerService) RemoveAll ¶ added in v0.13.0
func (m *MatchmakerService) RemoveAll(sessionID uuid.UUID)
func (*MatchmakerService) UpdateAll ¶ added in v0.13.0
func (m *MatchmakerService) UpdateAll(sessionID uuid.UUID, meta PresenceMeta)
type MessageRouter ¶
MessageRouter is responsible for sending a message to a list of presences
type NNotification ¶ added in v1.0.0
type NakamaModule ¶ added in v0.13.0
type NakamaModule struct {
// contains filtered or unexported fields
}
func NewNakamaModule ¶ added in v0.13.0
func NewNakamaModule(logger *zap.Logger, db *sql.DB, l *lua.LState, notificationService *NotificationService) *NakamaModule
func (*NakamaModule) Loader ¶ added in v0.13.0
func (n *NakamaModule) Loader(l *lua.LState) int
type NakamaxModule ¶ added in v0.13.0
type NakamaxModule struct {
// contains filtered or unexported fields
}
func NewNakamaxModule ¶ added in v0.13.0
func NewNakamaxModule(logger *zap.Logger) *NakamaxModule
func (*NakamaxModule) Loader ¶ added in v0.13.0
func (nx *NakamaxModule) Loader(l *lua.LState) int
type NotificationConfig ¶ added in v1.0.0
type NotificationConfig struct {
ExpiryMs int64 `yaml:"expiry_ms" json:"expiry_ms" usage:"Notification expiry in milliseconds."`
}
NotificationConfig is configuration relevant to notification center
type NotificationService ¶ added in v1.0.0
type NotificationService struct {
// contains filtered or unexported fields
}
func NewNotificationService ¶ added in v1.0.0
func NewNotificationService(logger *zap.Logger, db *sql.DB, tracker Tracker, messageRouter MessageRouter, config *NotificationConfig) *NotificationService
func (*NotificationService) NotificationSend ¶ added in v1.0.0
func (n *NotificationService) NotificationSend(notifications []*NNotification) error
func (*NotificationService) NotificationsList ¶ added in v1.0.0
func (n *NotificationService) NotificationsList(userID uuid.UUID, limit int64, cursor []byte) ([]*NNotification, []byte, error)
func (*NotificationService) NotificationsRemove ¶ added in v1.0.0
func (n *NotificationService) NotificationsRemove(userID uuid.UUID, notificationIDs [][]byte) error
type Presence ¶
type Presence struct { ID PresenceID Topic string UserID uuid.UUID Meta PresenceMeta }
type PresenceID ¶
type PresenceID struct { Node string SessionID uuid.UUID }
type PresenceMeta ¶
type PresenceMeta struct {
Handle string
}
type PurchaseConfig ¶ added in v1.0.0
type PurchaseConfig struct { Apple *ApplePurchaseProviderConfig `yaml:"apple" json:"apple" usage:"Apple In-App Purchase configuration"` Google *GooglePurchaseProviderConfig `yaml:"google" json:"google" usage:"Google In-App Purchase configuration"` }
PurchaseConfig is configuration relevant to the In-App Purchase providers.
func NewPurchaseConfig ¶ added in v1.0.0
func NewPurchaseConfig() *PurchaseConfig
NewPurchaseConfig creates a new PurchaseConfig struct
type PurchaseService ¶ added in v1.0.0
type PurchaseService struct { AppleClient *iap.AppleClient GoogleClient *iap.GoogleClient // contains filtered or unexported fields }
func NewPurchaseService ¶ added in v1.0.0
func NewPurchaseService(jsonLogger *zap.Logger, multiLogger *zap.Logger, db *sql.DB, config *PurchaseConfig) *PurchaseService
func (*PurchaseService) ValidateApplePurchase ¶ added in v1.0.0
func (p *PurchaseService) ValidateApplePurchase(userID uuid.UUID, purchase *iap.ApplePurchase) *iap.PurchaseVerifyResponse
func (*PurchaseService) ValidateGooglePurchaseProduct ¶ added in v1.0.0
func (p *PurchaseService) ValidateGooglePurchaseProduct(userID uuid.UUID, purchase *iap.GooglePurchase) *iap.PurchaseVerifyResponse
func (*PurchaseService) ValidateGooglePurchaseSubscription ¶ added in v1.0.0
func (p *PurchaseService) ValidateGooglePurchaseSubscription(userID uuid.UUID, purchase *iap.GooglePurchase) *iap.PurchaseVerifyResponse
type Runtime ¶ added in v0.13.0
type Runtime struct {
// contains filtered or unexported fields
}
func NewRuntime ¶ added in v0.13.0
func NewRuntime(logger *zap.Logger, multiLogger *zap.Logger, db *sql.DB, config *RuntimeConfig, notificationService *NotificationService) (*Runtime, error)
func (*Runtime) GetRuntimeCallback ¶ added in v0.13.0
func (r *Runtime) GetRuntimeCallback(e ExecutionMode, key string) *lua.LFunction
func (*Runtime) InvokeFunctionAfter ¶ added in v0.13.0
func (*Runtime) InvokeFunctionBefore ¶ added in v0.13.0
func (*Runtime) InvokeFunctionHTTP ¶ added in v0.13.0
func (*Runtime) InvokeFunctionRPC ¶ added in v0.13.0
func (*Runtime) NewStateThread ¶ added in v0.13.0
func (r *Runtime) NewStateThread() (*lua.LState, context.CancelFunc)
type RuntimeConfig ¶ added in v0.13.0
type RuntimeConfig struct { Environment map[string]interface{} `yaml:"env" json:"env"` // not supported in FlagOverrides Path string `yaml:"path" json:"path" usage:"Path of modules for the server to scan."` HTTPKey string `yaml:"http_key" json:"http_key" usage:"Runtime HTTP Invocation key"` }
RuntimeConfig is configuration relevant to the Runtime Lua VM
func NewRuntimeConfig ¶ added in v0.13.0
func NewRuntimeConfig() *RuntimeConfig
NewRuntimeConfig creates a new RuntimeConfig struct
type SelfUpdateOp ¶ added in v1.0.0
type SessionConfig ¶
type SessionConfig struct { EncryptionKey string `yaml:"encryption_key" json:"encryption_key" usage:"The encryption key used to produce the client token."` TokenExpiryMs int64 `yaml:"token_expiry_ms" json:"token_expiry_ms" usage:"Token expiry in milliseconds."` }
SessionConfig is configuration relevant to the session
func NewSessionConfig ¶
func NewSessionConfig() *SessionConfig
NewSessionConfig creates a new SessionConfig struct
type SessionRegistry ¶
SessionRegistry maintains a list of sessions to their IDs. This is thread-safe.
func NewSessionRegistry ¶
func NewSessionRegistry(logger *zap.Logger, config Config, tracker Tracker, matchmaker Matchmaker) *SessionRegistry
NewSessionRegistry creates a new SessionRegistry
func (*SessionRegistry) Get ¶
func (a *SessionRegistry) Get(sessionID uuid.UUID) *session
Get returns a session matching the sessionID
type SocialConfig ¶
type SocialConfig struct { Notification *NotificationConfig `yaml:"notification" json:"notification" usage:"Notification configuration"` Steam *SocialConfigSteam `yaml:"steam" json:"steam" usage:"Steam configuration"` }
SocialConfig is configuration relevant to the Social providers
func NewSocialConfig ¶
func NewSocialConfig() *SocialConfig
NewSocialConfig creates a new SocialConfig struct
type SocialConfigSteam ¶
type SocialConfigSteam struct { PublisherKey string `yaml:"publisher_key" json:"publisher_key" usage:"Steam Publisher Key value."` AppID int `yaml:"app_id" json:"app_id" usage:"Steam App ID."` }
SocialConfigSteam is configuration relevant to Steam
type StatsService ¶
StatsService is responsible for gathering and reading stats information from metrics
func NewStatsService ¶
func NewStatsService(logger *zap.Logger, config Config, version string, tracker Tracker, startedAt int64) StatsService
NewStatsService creates a new StatsService
type StorageData ¶ added in v0.13.0
type StorageKey ¶ added in v0.13.0
type Tracker ¶
type Tracker interface { AddDiffListener(func([]Presence, []Presence)) Stop() Track(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta) Untrack(sessionID uuid.UUID, topic string, userID uuid.UUID) UntrackAll(sessionID uuid.UUID) Update(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta) error UpdateAll(sessionID uuid.UUID, meta PresenceMeta) // Get current total number of presences. Count() int // Check if a single presence on the current node exists. CheckLocalByIDTopicUser(sessionID uuid.UUID, topic string, userID uuid.UUID) bool // List presences by topic. ListByTopic(topic string) []Presence // List presences on the current node by topic. ListLocalByTopic(topic string) []Presence // List presences by topic and user ID. ListByTopicUser(topic string, userID uuid.UUID) []Presence }
type TrackerService ¶
func NewTrackerService ¶
func NewTrackerService(name string) *TrackerService
func (*TrackerService) AddDiffListener ¶
func (t *TrackerService) AddDiffListener(f func([]Presence, []Presence))
func (*TrackerService) CheckLocalByIDTopicUser ¶
func (t *TrackerService) CheckLocalByIDTopicUser(sessionID uuid.UUID, topic string, userID uuid.UUID) bool
func (*TrackerService) Count ¶
func (t *TrackerService) Count() int
func (*TrackerService) ListByTopic ¶
func (t *TrackerService) ListByTopic(topic string) []Presence
func (*TrackerService) ListByTopicUser ¶ added in v1.0.0
func (t *TrackerService) ListByTopicUser(topic string, userID uuid.UUID) []Presence
func (*TrackerService) ListLocalByTopic ¶
func (t *TrackerService) ListLocalByTopic(topic string) []Presence
func (*TrackerService) Stop ¶
func (t *TrackerService) Stop()
func (*TrackerService) Track ¶
func (t *TrackerService) Track(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta)
func (*TrackerService) Untrack ¶
func (t *TrackerService) Untrack(sessionID uuid.UUID, topic string, userID uuid.UUID)
func (*TrackerService) UntrackAll ¶
func (t *TrackerService) UntrackAll(sessionID uuid.UUID)
func (*TrackerService) Update ¶
func (t *TrackerService) Update(sessionID uuid.UUID, topic string, userID uuid.UUID, meta PresenceMeta) error
func (*TrackerService) UpdateAll ¶ added in v0.12.0
func (t *TrackerService) UpdateAll(sessionID uuid.UUID, meta PresenceMeta)
type TransportConfig ¶
type TransportConfig struct { ServerKey string `yaml:"server_key" json:"server_key" usage:"Server key to use to establish a connection to the server."` MaxMessageSizeBytes int64 `` /* 154-byte string literal not displayed */ WriteWaitMs int `yaml:"write_wait_ms" json:"write_wait_ms" usage:"Time in milliseconds to wait for an ack from the client when writing data."` PongWaitMs int `` /* 133-byte string literal not displayed */ PingPeriodMs int `` /* 157-byte string literal not displayed */ }
TransportConfig is configuration relevant to the transport socket and protocol
func NewTransportConfig ¶
func NewTransportConfig() *TransportConfig
NewTransportConfig creates a new TransportConfig struct
Source Files ¶
- config.go
- core_friend.go
- core_group.go
- core_leaderboard.go
- core_notification.go
- core_purchase.go
- core_runtime_hooks.go
- core_self.go
- core_storage.go
- core_user.go
- dashboard_accepter.go
- log.go
- matchmaker.go
- message_router.go
- pipeline.go
- pipeline_friend.go
- pipeline_group.go
- pipeline_leaderboard.go
- pipeline_link_unlink.go
- pipeline_match.go
- pipeline_matchmake.go
- pipeline_notification.go
- pipeline_purchase.go
- pipeline_runtime.go
- pipeline_self.go
- pipeline_storage.go
- pipeline_topic.go
- pipeline_user.go
- presence_notifier.go
- runtime.go
- runtime_lua_context.go
- runtime_messages.go
- runtime_nakama_module.go
- runtime_nakamax_module.go
- runtime_oslib.go
- runtime_utils.go
- session.go
- session_auth.go
- session_registry.go
- stats_service.go
- tracker.go