utils

package
v0.11.6 Latest Latest
Warning

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

Go to latest
Published: Dec 28, 2021 License: MIT Imports: 18 Imported by: 48

Documentation

Index

Constants

View Source
const (
	RoomPrefix        = "RM_"
	NodePrefix        = "ND_"
	ParticipantPrefix = "PA_"
	TrackPrefix       = "TR_"
	APIKeyPrefix      = "API"
	RecordingPrefix   = "RR_"
	RPCPrefix         = "RPC"
)

Variables

View Source
var (
	ErrChannelClosed = errors.New("cannot write to closed channel")
)
View Source
var (
	PromMessageBusCounter = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: "livekit",
			Subsystem: "messagebus",
			Name:      "messages",
		},
		[]string{"type", "status"},
	)
)

Functions

func HashedID

func HashedID(id string) string

Creates a hashed ID from a unique string

func LocalNodeID added in v0.11.1

func LocalNodeID() (string, error)

func NewGuid

func NewGuid(prefix string) string

func RandomSecret

func RandomSecret() string

Types

type AtomicFlag

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

func (*AtomicFlag) Get

func (b *AtomicFlag) Get() bool

func (*AtomicFlag) TrySet

func (b *AtomicFlag) TrySet(bVal bool) bool

set flag to value if existing flag is different, otherwise return

type MessageBus added in v0.8.4

type MessageBus interface {
	Lock(ctx context.Context, key string, expiration time.Duration) (acquired bool, err error)
	Subscribe(ctx context.Context, channel string) (PubSub, error)
	// like subscribe, but ensuring only a single instance gets to process the message
	SubscribeQueue(ctx context.Context, channel string) (PubSub, error)
	Publish(ctx context.Context, channel string, msg proto.Message) error
}

func NewRedisMessageBus added in v0.8.4

func NewRedisMessageBus(rc *redis.Client) MessageBus

type PubSub added in v0.8.4

type PubSub interface {
	Channel() <-chan interface{}
	Payload(msg interface{}) []byte
	Close() error
}

type RedisMessageBus added in v0.8.4

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

func (*RedisMessageBus) Lock added in v0.8.4

func (r *RedisMessageBus) Lock(ctx context.Context, key string, expiration time.Duration) (bool, error)

func (*RedisMessageBus) Publish added in v0.8.4

func (r *RedisMessageBus) Publish(ctx context.Context, channel string, msg proto.Message) error

func (*RedisMessageBus) Subscribe added in v0.8.4

func (r *RedisMessageBus) Subscribe(ctx context.Context, channel string) (PubSub, error)

func (*RedisMessageBus) SubscribeQueue added in v0.9.3

func (r *RedisMessageBus) SubscribeQueue(ctx context.Context, channel string) (PubSub, error)

type RedisPubSub added in v0.8.4

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

func (*RedisPubSub) Channel added in v0.8.4

func (r *RedisPubSub) Channel() <-chan interface{}

func (*RedisPubSub) Close added in v0.8.4

func (r *RedisPubSub) Close() error

func (*RedisPubSub) Payload added in v0.8.4

func (r *RedisPubSub) Payload(msg interface{}) []byte

Jump to

Keyboard shortcuts

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