Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Runtime account get operations now return account disable time if available. - Expose last user relationship update time when listing friends. - Expose caller information in log messages. - Expose node name in all runtime contexts. ### Changed - Replace metrics implementation. Loading server/runtime_go.go +138 −135 File changed.Preview size limit exceeded, changes collapsed. Show changes server/runtime_go_context.go +2 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ import ( "github.com/heroiclabs/nakama-common/runtime" ) func NewRuntimeGoContext(ctx context.Context, env map[string]string, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username string, vars map[string]string, sessionID, clientIP, clientPort string) context.Context { func NewRuntimeGoContext(ctx context.Context, node string, env map[string]string, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username string, vars map[string]string, sessionID, clientIP, clientPort string) context.Context { ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_ENV, env) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MODE, mode.String()) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_NODE, node) if queryParams != nil { ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_QUERY_PARAMS, queryParams) Loading server/runtime_go_match_core.go +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ type RuntimeGoMatchCore struct { func NewRuntimeGoMatchCore(logger *zap.Logger, matchRegistry MatchRegistry, router MessageRouter, id uuid.UUID, node string, stopped *atomic.Bool, db *sql.DB, env map[string]string, nk runtime.NakamaModule, match runtime.Match) (RuntimeMatchCore, error) { ctx, ctxCancelFn := context.WithCancel(context.Background()) ctx = NewRuntimeGoContext(ctx, env, RuntimeExecutionModeMatch, nil, 0, "", "", nil, "", "", "") ctx = NewRuntimeGoContext(ctx, node, env, RuntimeExecutionModeMatch, nil, 0, "", "", nil, "", "", "") ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MATCH_ID, fmt.Sprintf("%v.%v", id.String(), node)) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MATCH_NODE, node) Loading server/runtime_lua.go +8 −5 Original line number Diff line number Diff line Loading @@ -993,6 +993,7 @@ func NewRuntimeProviderLua(logger, startupLogger *zap.Logger, db *sql.DB, jsonpb r := &RuntimeLua{ logger: logger, node: config.GetName(), vm: vm, luaEnv: RuntimeLuaConvertMapString(vm, config.GetRuntime().Environment), callbacks: callbacksGlobals, Loading Loading @@ -1437,7 +1438,7 @@ func (rp *RuntimeProviderLua) MatchmakerMatched(ctx context.Context, entries []* return "", false, errors.New("Runtime Matchmaker Matched function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeMatchmaker, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeMatchmaker, nil, 0, "", "", nil, "", "", "") entriesTable := r.vm.CreateTable(len(entries), 0) for i, entry := range entries { Loading Loading @@ -1504,7 +1505,7 @@ func (rp *RuntimeProviderLua) TournamentEnd(ctx context.Context, tournament *api return errors.New("Runtime Tournament End function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeTournamentEnd, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeTournamentEnd, nil, 0, "", "", nil, "", "", "") tournamentTable := r.vm.CreateTable(0, 17) Loading Loading @@ -1566,7 +1567,7 @@ func (rp *RuntimeProviderLua) TournamentReset(ctx context.Context, tournament *a return errors.New("Runtime Tournament Reset function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeTournamentReset, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeTournamentReset, nil, 0, "", "", nil, "", "", "") tournamentTable := r.vm.CreateTable(0, 16) Loading Loading @@ -1627,7 +1628,7 @@ func (rp *RuntimeProviderLua) LeaderboardReset(ctx context.Context, leaderboard return errors.New("Runtime Leaderboard Reset function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeLeaderboardReset, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeLeaderboardReset, nil, 0, "", "", nil, "", "", "") leaderboardTable := r.vm.CreateTable(0, 13) Loading Loading @@ -1701,6 +1702,7 @@ func (rp *RuntimeProviderLua) Put(r *RuntimeLua) { type RuntimeLua struct { logger *zap.Logger node string vm *lua.LState luaEnv *lua.LTable callbacks *RuntimeLuaCallbacks Loading Loading @@ -1799,7 +1801,7 @@ func (r *RuntimeLua) GetCallback(e RuntimeExecutionMode, key string) *lua.LFunct } func (r *RuntimeLua) InvokeFunction(execMode RuntimeExecutionMode, fn *lua.LFunction, queryParams map[string][]string, uid string, username string, vars map[string]string, sessionExpiry int64, sid string, clientIP string, clientPort string, payloads ...interface{}) (interface{}, error, codes.Code) { ctx := NewRuntimeLuaContext(r.vm, r.luaEnv, execMode, queryParams, sessionExpiry, uid, username, vars, sid, clientIP, clientPort) ctx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, execMode, queryParams, sessionExpiry, uid, username, vars, sid, clientIP, clientPort) lv := make([]lua.LValue, 0, len(payloads)) for _, payload := range payloads { lv = append(lv, RuntimeLuaConvertValue(r.vm, payload)) Loading Loading @@ -1959,6 +1961,7 @@ func newRuntimeLuaVM(logger *zap.Logger, db *sql.DB, jsonpbMarshaler *jsonpb.Mar vm.PreloadModule("nakama", nakamaModule.Loader) r := &RuntimeLua{ logger: logger, node: config.GetName(), vm: vm, luaEnv: RuntimeLuaConvertMapString(vm, config.GetRuntime().Environment), callbacks: callbacks, Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Runtime account get operations now return account disable time if available. - Expose last user relationship update time when listing friends. - Expose caller information in log messages. - Expose node name in all runtime contexts. ### Changed - Replace metrics implementation. Loading
server/runtime_go.go +138 −135 File changed.Preview size limit exceeded, changes collapsed. Show changes
server/runtime_go_context.go +2 −1 Original line number Diff line number Diff line Loading @@ -20,9 +20,10 @@ import ( "github.com/heroiclabs/nakama-common/runtime" ) func NewRuntimeGoContext(ctx context.Context, env map[string]string, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username string, vars map[string]string, sessionID, clientIP, clientPort string) context.Context { func NewRuntimeGoContext(ctx context.Context, node string, env map[string]string, mode RuntimeExecutionMode, queryParams map[string][]string, sessionExpiry int64, userID, username string, vars map[string]string, sessionID, clientIP, clientPort string) context.Context { ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_ENV, env) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MODE, mode.String()) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_NODE, node) if queryParams != nil { ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_QUERY_PARAMS, queryParams) Loading
server/runtime_go_match_core.go +1 −1 Original line number Diff line number Diff line Loading @@ -56,7 +56,7 @@ type RuntimeGoMatchCore struct { func NewRuntimeGoMatchCore(logger *zap.Logger, matchRegistry MatchRegistry, router MessageRouter, id uuid.UUID, node string, stopped *atomic.Bool, db *sql.DB, env map[string]string, nk runtime.NakamaModule, match runtime.Match) (RuntimeMatchCore, error) { ctx, ctxCancelFn := context.WithCancel(context.Background()) ctx = NewRuntimeGoContext(ctx, env, RuntimeExecutionModeMatch, nil, 0, "", "", nil, "", "", "") ctx = NewRuntimeGoContext(ctx, node, env, RuntimeExecutionModeMatch, nil, 0, "", "", nil, "", "", "") ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MATCH_ID, fmt.Sprintf("%v.%v", id.String(), node)) ctx = context.WithValue(ctx, runtime.RUNTIME_CTX_MATCH_NODE, node) Loading
server/runtime_lua.go +8 −5 Original line number Diff line number Diff line Loading @@ -993,6 +993,7 @@ func NewRuntimeProviderLua(logger, startupLogger *zap.Logger, db *sql.DB, jsonpb r := &RuntimeLua{ logger: logger, node: config.GetName(), vm: vm, luaEnv: RuntimeLuaConvertMapString(vm, config.GetRuntime().Environment), callbacks: callbacksGlobals, Loading Loading @@ -1437,7 +1438,7 @@ func (rp *RuntimeProviderLua) MatchmakerMatched(ctx context.Context, entries []* return "", false, errors.New("Runtime Matchmaker Matched function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeMatchmaker, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeMatchmaker, nil, 0, "", "", nil, "", "", "") entriesTable := r.vm.CreateTable(len(entries), 0) for i, entry := range entries { Loading Loading @@ -1504,7 +1505,7 @@ func (rp *RuntimeProviderLua) TournamentEnd(ctx context.Context, tournament *api return errors.New("Runtime Tournament End function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeTournamentEnd, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeTournamentEnd, nil, 0, "", "", nil, "", "", "") tournamentTable := r.vm.CreateTable(0, 17) Loading Loading @@ -1566,7 +1567,7 @@ func (rp *RuntimeProviderLua) TournamentReset(ctx context.Context, tournament *a return errors.New("Runtime Tournament Reset function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeTournamentReset, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeTournamentReset, nil, 0, "", "", nil, "", "", "") tournamentTable := r.vm.CreateTable(0, 16) Loading Loading @@ -1627,7 +1628,7 @@ func (rp *RuntimeProviderLua) LeaderboardReset(ctx context.Context, leaderboard return errors.New("Runtime Leaderboard Reset function not found.") } luaCtx := NewRuntimeLuaContext(r.vm, r.luaEnv, RuntimeExecutionModeLeaderboardReset, nil, 0, "", "", nil, "", "", "") luaCtx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, RuntimeExecutionModeLeaderboardReset, nil, 0, "", "", nil, "", "", "") leaderboardTable := r.vm.CreateTable(0, 13) Loading Loading @@ -1701,6 +1702,7 @@ func (rp *RuntimeProviderLua) Put(r *RuntimeLua) { type RuntimeLua struct { logger *zap.Logger node string vm *lua.LState luaEnv *lua.LTable callbacks *RuntimeLuaCallbacks Loading Loading @@ -1799,7 +1801,7 @@ func (r *RuntimeLua) GetCallback(e RuntimeExecutionMode, key string) *lua.LFunct } func (r *RuntimeLua) InvokeFunction(execMode RuntimeExecutionMode, fn *lua.LFunction, queryParams map[string][]string, uid string, username string, vars map[string]string, sessionExpiry int64, sid string, clientIP string, clientPort string, payloads ...interface{}) (interface{}, error, codes.Code) { ctx := NewRuntimeLuaContext(r.vm, r.luaEnv, execMode, queryParams, sessionExpiry, uid, username, vars, sid, clientIP, clientPort) ctx := NewRuntimeLuaContext(r.vm, r.node, r.luaEnv, execMode, queryParams, sessionExpiry, uid, username, vars, sid, clientIP, clientPort) lv := make([]lua.LValue, 0, len(payloads)) for _, payload := range payloads { lv = append(lv, RuntimeLuaConvertValue(r.vm, payload)) Loading Loading @@ -1959,6 +1961,7 @@ func newRuntimeLuaVM(logger *zap.Logger, db *sql.DB, jsonpbMarshaler *jsonpb.Mar vm.PreloadModule("nakama", nakamaModule.Loader) r := &RuntimeLua{ logger: logger, node: config.GetName(), vm: vm, luaEnv: RuntimeLuaConvertMapString(vm, config.GetRuntime().Environment), callbacks: callbacks, Loading