adapter

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Feb 12, 2025 License: MIT Imports: 20 Imported by: 1

Documentation

Index

Constants

View Source
const (
	PSUB string = "psub"
	SUB  string = "sub"
)
View Source
const (
	StaticSubscriptionMode         subscriptionMode = "static"
	DynamicSubscriptionMode        subscriptionMode = "dynamic"
	DynamicPrivateSubscriptionMode subscriptionMode = "dynamic-private"
)
View Source
const RESTORE_SESSION_MAX_XRANGE_CALLS = 100

Variables

This section is empty.

Functions

This section is empty.

Types

type AckRequest

type AckRequest = adapter.ClusterAckRequest

type Packet added in v1.1.1

type Packet = _types.RedisPacket

type RawClusterMessage added in v1.1.0

type RawClusterMessage map[string]any

func (RawClusterMessage) Data added in v1.1.0

func (r RawClusterMessage) Data() string

func (RawClusterMessage) Nsp added in v1.1.0

func (r RawClusterMessage) Nsp() string

func (RawClusterMessage) Type added in v1.1.0

func (r RawClusterMessage) Type() string

func (RawClusterMessage) Uid added in v1.1.0

func (r RawClusterMessage) Uid() string

type RedisAdapter

type RedisAdapter interface {
	socket.Adapter

	SetRedis(*_types.RedisClient)
	SetOpts(any)

	Uid() adapter.ServerId
	RequestsTimeout() time.Duration
	PublishOnSpecificResponseChannel() bool
	Parser() _types.Parser

	AllRooms() func(func(*types.Set[socket.Room], error))
}

func MakeRedisAdapter

func MakeRedisAdapter() RedisAdapter

func NewRedisAdapter

func NewRedisAdapter(nsp socket.Namespace, redis *_types.RedisClient, opts any) RedisAdapter

type RedisAdapterBuilder

type RedisAdapterBuilder struct {
	// a Redis client
	Redis *_types.RedisClient
	// additional options
	Opts RedisAdapterOptionsInterface
}

func (*RedisAdapterBuilder) New

Adapter constructor.

type RedisAdapterOptions

type RedisAdapterOptions struct {
	emitter.EmitterOptions
	// contains filtered or unexported fields
}

func DefaultRedisAdapterOptions

func DefaultRedisAdapterOptions() *RedisAdapterOptions

func (*RedisAdapterOptions) Assign

func (*RedisAdapterOptions) GetRawPublishOnSpecificResponseChannel

func (s *RedisAdapterOptions) GetRawPublishOnSpecificResponseChannel() *bool

func (*RedisAdapterOptions) GetRawRequestsTimeout

func (s *RedisAdapterOptions) GetRawRequestsTimeout() *time.Duration

func (*RedisAdapterOptions) PublishOnSpecificResponseChannel

func (s *RedisAdapterOptions) PublishOnSpecificResponseChannel() bool

func (*RedisAdapterOptions) RequestsTimeout

func (s *RedisAdapterOptions) RequestsTimeout() time.Duration

func (*RedisAdapterOptions) SetPublishOnSpecificResponseChannel

func (s *RedisAdapterOptions) SetPublishOnSpecificResponseChannel(publishOnSpecificResponseChannel bool)

func (*RedisAdapterOptions) SetRequestsTimeout

func (s *RedisAdapterOptions) SetRequestsTimeout(requestsTimeout time.Duration)

type RedisAdapterOptionsInterface

type RedisAdapterOptionsInterface interface {
	emitter.EmitterOptionsInterface

	SetRequestsTimeout(time.Duration)
	GetRawRequestsTimeout() *time.Duration
	RequestsTimeout() time.Duration

	SetPublishOnSpecificResponseChannel(bool)
	GetRawPublishOnSpecificResponseChannel() *bool
	PublishOnSpecificResponseChannel() bool
}

type RedisRequest

type RedisRequest struct {
	Type      adapter.MessageType
	Resolve   func(*types.Slice[any])
	Timeout   *atomic.Pointer[utils.Timer]
	NumSub    int64
	MsgCount  *atomic.Int64
	Rooms     *types.Set[socket.Room]
	Sockets   *types.Slice[*adapter.SocketResponse]
	Responses *types.Slice[any]
}

type RedisStreamsAdapter added in v1.1.0

type RedisStreamsAdapter interface {
	adapter.ClusterAdapterWithHeartbeat

	SetRedis(*types.RedisClient)
	Cleanup(func())
	OnRawMessage(RawClusterMessage, string) error
}

func MakeRedisStreamsAdapter added in v1.1.0

func MakeRedisStreamsAdapter() RedisStreamsAdapter

func NewRedisStreamsAdapter added in v1.1.0

func NewRedisStreamsAdapter(nsp socket.Namespace, redis *_types.RedisClient, opts any) RedisStreamsAdapter

type RedisStreamsAdapterBuilder added in v1.1.0

type RedisStreamsAdapterBuilder struct {
	// the Redis client used to publish/subscribe
	Redis *_types.RedisClient
	// some additional options
	Opts RedisStreamsAdapterOptionsInterface
	// contains filtered or unexported fields
}

Returns a function that will create a new adapter instance.

func (*RedisStreamsAdapterBuilder) New added in v1.1.0

type RedisStreamsAdapterOptions added in v1.1.0

type RedisStreamsAdapterOptions struct {
	adapter.ClusterAdapterOptions
	// contains filtered or unexported fields
}

func DefaultRedisStreamsAdapterOptions added in v1.1.0

func DefaultRedisStreamsAdapterOptions() *RedisStreamsAdapterOptions

func (*RedisStreamsAdapterOptions) Assign added in v1.1.0

func (*RedisStreamsAdapterOptions) GetRawMaxLen added in v1.1.0

func (s *RedisStreamsAdapterOptions) GetRawMaxLen() *int64

func (*RedisStreamsAdapterOptions) GetRawReadCount added in v1.1.0

func (s *RedisStreamsAdapterOptions) GetRawReadCount() *int64

func (*RedisStreamsAdapterOptions) GetRawSessionKeyPrefix added in v1.1.0

func (s *RedisStreamsAdapterOptions) GetRawSessionKeyPrefix() *string

func (*RedisStreamsAdapterOptions) GetRawStreamName added in v1.1.0

func (s *RedisStreamsAdapterOptions) GetRawStreamName() *string

func (*RedisStreamsAdapterOptions) MaxLen added in v1.1.0

func (s *RedisStreamsAdapterOptions) MaxLen() int64

func (*RedisStreamsAdapterOptions) ReadCount added in v1.1.0

func (s *RedisStreamsAdapterOptions) ReadCount() int64

func (*RedisStreamsAdapterOptions) SessionKeyPrefix added in v1.1.0

func (s *RedisStreamsAdapterOptions) SessionKeyPrefix() string

func (*RedisStreamsAdapterOptions) SetMaxLen added in v1.1.0

func (s *RedisStreamsAdapterOptions) SetMaxLen(maxLen int64)

func (*RedisStreamsAdapterOptions) SetReadCount added in v1.1.0

func (s *RedisStreamsAdapterOptions) SetReadCount(readCount int64)

func (*RedisStreamsAdapterOptions) SetSessionKeyPrefix added in v1.1.0

func (s *RedisStreamsAdapterOptions) SetSessionKeyPrefix(sessionKeyPrefix string)

func (*RedisStreamsAdapterOptions) SetStreamName added in v1.1.0

func (s *RedisStreamsAdapterOptions) SetStreamName(streamName string)

func (*RedisStreamsAdapterOptions) StreamName added in v1.1.0

func (s *RedisStreamsAdapterOptions) StreamName() string

type RedisStreamsAdapterOptionsInterface added in v1.1.0

type RedisStreamsAdapterOptionsInterface interface {
	adapter.ClusterAdapterOptionsInterface

	SetStreamName(string)
	GetRawStreamName() *string
	StreamName() string

	SetMaxLen(int64)
	GetRawMaxLen() *int64
	MaxLen() int64

	SetReadCount(int64)
	GetRawReadCount() *int64
	ReadCount() int64

	SetSessionKeyPrefix(string)
	GetRawSessionKeyPrefix() *string
	SessionKeyPrefix() string
}

type Request

type Request = _types.RedisRequest

type Response

type Response = _types.RedisResponse

type ShardedRedisAdapter

type ShardedRedisAdapter interface {
	adapter.ClusterAdapter

	SetRedis(*types.RedisClient)
	SetOpts(any)
}

func MakeShardedRedisAdapter

func MakeShardedRedisAdapter() ShardedRedisAdapter

func NewShardedRedisAdapter

func NewShardedRedisAdapter(nsp socket.Namespace, redis *_types.RedisClient, opts any) ShardedRedisAdapter

type ShardedRedisAdapterBuilder

type ShardedRedisAdapterBuilder struct {
	// the Redis client used to publish/subscribe
	Redis *_types.RedisClient
	// some additional options
	Opts ShardedRedisAdapterOptionsInterface
}

Create a new Adapter based on Redis sharded Pub/Sub introduced in Redis 7.0.

See: https://redis.io/docs/manual/pubsub/#sharded-pubsub

func (*ShardedRedisAdapterBuilder) New

type ShardedRedisAdapterOptions

type ShardedRedisAdapterOptions struct {
	// contains filtered or unexported fields
}

func DefaultShardedRedisAdapterOptions

func DefaultShardedRedisAdapterOptions() *ShardedRedisAdapterOptions

func (*ShardedRedisAdapterOptions) ChannelPrefix

func (s *ShardedRedisAdapterOptions) ChannelPrefix() string

func (*ShardedRedisAdapterOptions) GetRawChannelPrefix

func (s *ShardedRedisAdapterOptions) GetRawChannelPrefix() *string

func (*ShardedRedisAdapterOptions) GetRawSubscriptionMode

func (s *ShardedRedisAdapterOptions) GetRawSubscriptionMode() *subscriptionMode

func (*ShardedRedisAdapterOptions) SetChannelPrefix

func (s *ShardedRedisAdapterOptions) SetChannelPrefix(channelPrefix string)

func (*ShardedRedisAdapterOptions) SetSubscriptionMode

func (s *ShardedRedisAdapterOptions) SetSubscriptionMode(subscriptionMode subscriptionMode)

func (*ShardedRedisAdapterOptions) SubscriptionMode

func (s *ShardedRedisAdapterOptions) SubscriptionMode() subscriptionMode

type ShardedRedisAdapterOptionsInterface

type ShardedRedisAdapterOptionsInterface interface {
	SetChannelPrefix(string)
	GetRawChannelPrefix() *string
	ChannelPrefix() string

	SetSubscriptionMode(subscriptionMode)
	GetRawSubscriptionMode() *subscriptionMode
	SubscriptionMode() subscriptionMode
}

Jump to

Keyboard shortcuts

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