server

package
v1.0.0-rc.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2017 License: Apache-2.0 Imports: 48 Imported by: 33

Documentation

Index

Constants

View Source
const CALLBACKS = "runtime_callbacks"

Variables

View Source
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 NewConsoleLogger(output *os.File, verbose bool) *zap.Logger

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 NewJSONLogger added in v0.12.2

func NewJSONLogger(output *os.File, verbose bool) *zap.Logger

func NewLogger added in v0.12.2

func NewLogger(config Config) *zap.Logger

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 NewMultiLogger added in v0.12.2

func NewMultiLogger(loggers ...*zap.Logger) *zap.Logger

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 OpenOs added in v0.13.0

func OpenOs(L *lua.LState) int

func RuntimeAfterHook added in v0.13.0

func RuntimeAfterHook(logger *zap.Logger, runtime *Runtime, jsonpbMarshaler *jsonpb.Marshaler, messageType string, envelope *Envelope, session *session)

func RuntimeAfterHookAuthentication added in v0.13.0

func RuntimeAfterHookAuthentication(logger *zap.Logger, runtime *Runtime, jsonpbMarshaler *jsonpb.Marshaler, envelope *AuthenticateRequest, userId uuid.UUID, handle string, expiry int64)

func SetupLogging added in v1.0.0

func SetupLogging(config Config) (*zap.Logger, *zap.Logger)

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 StorageList(logger *zap.Logger, db *sql.DB, caller uuid.UUID, userID []byte, bucket string, collection string, limit int64, cursor []byte) ([]*StorageData, []byte, Error_Code, error)

func StorageWrite added in v0.13.0

func StorageWrite(logger *zap.Logger, db *sql.DB, caller uuid.UUID, data []*StorageData) ([]*StorageKey, Error_Code, error)

func UsersBan added in v1.0.0

func UsersBan(logger *zap.Logger, db *sql.DB, userIds [][]byte, handles []string) 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 Callbacks added in v0.13.0

type Callbacks struct {
	HTTP   map[string]*lua.LFunction
	RPC    map[string]*lua.LFunction
	Before map[string]*lua.LFunction
	After  map[string]*lua.LFunction
}

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

func ParseArgs added in v1.0.0

func ParseArgs(logger *zap.Logger, args []string) Config

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 GroupCreateParam struct {
	Name        string    // mandatory
	Creator     uuid.UUID // mandatory
	Description string
	AvatarURL   string
	Lang        string
	Metadata    []byte
	Private     bool
}

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

type MatchmakerService struct {
	sync.Mutex
	// contains filtered or unexported fields
}

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

type MessageRouter interface {
	Send(*zap.Logger, []Presence, proto.Message)
}

MessageRouter is responsible for sending a message to a list of presences

type NNotification added in v1.0.0

type NNotification struct {
	Id         []byte
	UserID     []byte
	Subject    string
	Content    []byte
	Code       int64
	SenderID   []byte
	CreatedAt  int64
	ExpiresAt  int64
	Persistent bool
}

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 (r *Runtime) InvokeFunctionAfter(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, payload map[string]interface{}) error

func (*Runtime) InvokeFunctionBefore added in v0.13.0

func (r *Runtime) InvokeFunctionBefore(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, payload map[string]interface{}) (map[string]interface{}, error)

func (*Runtime) InvokeFunctionHTTP added in v0.13.0

func (r *Runtime) InvokeFunctionHTTP(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, payload map[string]interface{}) (map[string]interface{}, error)

func (*Runtime) InvokeFunctionRPC added in v0.13.0

func (r *Runtime) InvokeFunctionRPC(fn *lua.LFunction, uid uuid.UUID, handle string, sessionExpiry int64, payload []byte) ([]byte, error)

func (*Runtime) NewStateThread added in v0.13.0

func (r *Runtime) NewStateThread() (*lua.LState, context.CancelFunc)

func (*Runtime) Stop added in v0.13.0

func (r *Runtime) Stop()

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 SelfUpdateOp struct {
	UserId    []byte
	Handle    string
	Fullname  string
	Timezone  string
	Location  string
	Lang      string
	Metadata  []byte
	AvatarUrl string
}

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

type SessionRegistry struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

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

type StatsService interface {
	GetStats() []map[string]interface{}
	GetHealthStatus() int
}

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 StorageData struct {
	Bucket          string
	Collection      string
	Record          string
	UserId          []byte // this must be UserId not UserID
	Value           []byte
	Version         []byte
	PermissionRead  int64
	PermissionWrite int64
	CreatedAt       int64
	UpdatedAt       int64
	ExpiresAt       int64
}

type StorageKey added in v0.13.0

type StorageKey struct {
	Bucket     string
	Collection string
	Record     string
	UserId     []byte // this must be UserId not UserID
	// Version is used when returning results from write ops, does not apply to fetch ops.
	Version []byte
}

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

type TrackerService struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL