session

package
v2.10.18 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	//ErrIllegalUID represents a invalid uid
	ErrIllegalUID = errors.New("illegal uid")
)
View Source
var Lifetime = &lifetime{}

Functions

func DestorySession

func DestorySession(uid int32) error

func GetSession

func GetSession(uid int32) *treaty.Session

func OnSessionClosed

func OnSessionClosed(s *Session)

func SaveSession

func SaveSession(uid int32, sess *treaty.Session) error

Types

type LifetimeHandler

type LifetimeHandler func(*Session)

LifetimeHandler represents a callback that will be called when a session close or session low-level connection broken.

type NetworkEntity

type NetworkEntity interface {
	Push(route string, v any) error
	MID() uint
	Response(v any) error
	ResponseMID(mid uint, v any) error
	Close() error
	RemoteAddr() net.Addr
}

NetworkEntity represent low-level network instance

type Session

type Session struct {
	sync.RWMutex // protect data
	// contains filtered or unexported fields
}

Session represents a client session which could storage temp data during low-level keep connected, all data will be released when the low-level connection was broken. Session instance related to the client will be passed to Handler method as the first parameter.

func NewSession

func NewSession(connId int, entity NetworkEntity) *Session

NewSession New returns a new session instance a NetworkEntity is a low-level network instance

func (*Session) Bind

func (s *Session) Bind(uid int64) error

Bind bind UID to current session

func (*Session) Clear

func (s *Session) Clear()

Clear releases all data related to current session

func (*Session) Close

func (s *Session) Close()

Close terminate current session, session related data will not be released, all related data should be Clear explicitly in Session closed callback

func (*Session) Float32

func (s *Session) Float32(key string) float32

Float32 returns the value associated with the key as a float32.

func (*Session) Float64

func (s *Session) Float64(key string) float64

Float64 returns the value associated with the key as a float64.

func (*Session) HasKey

func (s *Session) HasKey(key string) bool

HasKey decides whether a key has associated value

func (*Session) ID

func (s *Session) ID() int64

ID returns the session id

func (*Session) Int

func (s *Session) Int(key string) int

Int returns the value associated with the key as a int.

func (*Session) Int16

func (s *Session) Int16(key string) int16

Int16 returns the value associated with the key as a int16.

func (*Session) Int32

func (s *Session) Int32(key string) int32

Int32 returns the value associated with the key as a int32.

func (*Session) Int64

func (s *Session) Int64(key string) int64

Int64 returns the value associated with the key as a int64.

func (*Session) Int8

func (s *Session) Int8(key string) int8

Int8 returns the value associated with the key as a int8.

func (*Session) MID

func (s *Session) MID() uint

MID returns the last message id

func (*Session) Push

func (s *Session) Push(route string, v any) error

Push message to client

func (*Session) RemoteAddr

func (s *Session) RemoteAddr() net.Addr

RemoteAddr returns the remote network address.

func (*Session) Remove

func (s *Session) Remove(key string)

Remove delete data associated with the key from session storage

func (*Session) Response

func (s *Session) Response(v any) error

Response message to client

func (*Session) ResponseMID

func (s *Session) ResponseMID(mid uint, v any) error

ResponseMID responses message to client, mid is request message ID

func (*Session) Restore

func (s *Session) Restore(data map[string]any)

Restore session state after reconnect

func (*Session) Set

func (s *Session) Set(key string, value any)

Set associates value with the key in session storage

func (*Session) State

func (s *Session) State() map[string]any

State returns all session state

func (*Session) String

func (s *Session) String(key string) string

String returns the value associated with the key as a string.

func (*Session) UID

func (s *Session) UID() int64

UID returns uid that bind to current session

func (*Session) Uint

func (s *Session) Uint(key string) uint

Uint returns the value associated with the key as a uint.

func (*Session) Uint16

func (s *Session) Uint16(key string) uint16

Uint16 returns the value associated with the key as a uint16.

func (*Session) Uint32

func (s *Session) Uint32(key string) uint32

Uint32 returns the value associated with the key as a uint32.

func (*Session) Uint64

func (s *Session) Uint64(key string) uint64

Uint64 returns the value associated with the key as a uint64.

func (*Session) Uint8

func (s *Session) Uint8(key string) uint8

Uint8 returns the value associated with the key as a uint8.

func (*Session) Unbind added in v2.0.3

func (s *Session) Unbind()

unbind the uid to current session

func (*Session) Value

func (s *Session) Value(key string) any

Value returns the value associated with the key as a any.

Jump to

Keyboard shortcuts

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