utils

package
v0.12.1 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2022 License: MIT Imports: 16 Imported by: 7

Documentation

Index

Constants

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

Variables

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

func LocalNodeID() (string, error)

func NewGuid

func NewGuid(prefix string) string

func RandomSecret

func RandomSecret() string

Types

type MessageBus

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

func NewRedisMessageBus(rc *redis.Client) MessageBus

type PubSub

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

type RedisMessageBus

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

func (*RedisMessageBus) Lock

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

func (*RedisMessageBus) Publish

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

func (*RedisMessageBus) Subscribe

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

func (*RedisMessageBus) SubscribeQueue

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

type RedisPubSub

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

func (*RedisPubSub) Channel

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

func (*RedisPubSub) Close

func (r *RedisPubSub) Close() error

func (*RedisPubSub) Payload

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