signalling

package
v2.9.2 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2025 License: Apache-2.0 Imports: 22 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnimplemented       = errors.New("unimplemented")
	ErrURLNotProvided      = errors.New("URL was not provided")
	ErrInvalidMessageType  = errors.New("invalid message type")
	ErrInvalidParameter    = errors.New("invalid parameter")
	ErrCannotDialSignal    = errors.New("could not dial signal connection")
	ErrCannotConnectSignal = errors.New("could not establish signal connection")
)

Functions

func NewHeaderWithToken

func NewHeaderWithToken(token string) http.Header

func ToHttpURL

func ToHttpURL(url string) string

func ToWebsocketURL

func ToWebsocketURL(url string) string

Types

type ConnectParams

type ConnectParams struct {
	AutoSubscribe          bool
	Reconnect              bool
	DisableRegionDiscovery bool

	RetransmitBufferSize uint16

	Attributes map[string]string // See WithExtraAttributes

	Pacer pacer.Factory

	Interceptors []interceptor.Factory

	ICETransportPolicy webrtc.ICETransportPolicy
}

type SignalHandler

type SignalHandler interface {
	SetLogger(l protoLogger.Logger)

	HandleMessage(msg proto.Message) error
}

func NewSignalHandler

func NewSignalHandler(params SignalHandlerParams) SignalHandler

func NewSignalHandlerv2

func NewSignalHandlerv2(params SignalHandlerv2Params) SignalHandler

type SignalHandlerParams

type SignalHandlerParams struct {
	Logger    logger.Logger
	Processor SignalProcessor
}

type SignalHandlerv2Params

type SignalHandlerv2Params struct {
	Logger     logger.Logger
	Processor  SignalProcessor
	Signalling Signalling
}

type SignalProcessor

type SignalProcessor interface {
	OnJoinResponse(joinResponse *livekit.JoinResponse)
	OnAnswer(sd webrtc.SessionDescription, answerId uint32)
	OnOffer(sd webrtc.SessionDescription, offerId uint32)
	OnTrickle(init webrtc.ICECandidateInit, target livekit.SignalTarget)
	OnParticipantUpdate([]*livekit.ParticipantInfo)
	OnLocalTrackPublished(response *livekit.TrackPublishedResponse)
	OnLocalTrackUnpublished(response *livekit.TrackUnpublishedResponse)
	OnSpeakersChanged([]*livekit.SpeakerInfo)
	OnConnectionQuality([]*livekit.ConnectionQualityInfo)
	OnRoomUpdate(room *livekit.Room)
	OnRoomMoved(moved *livekit.RoomMovedResponse)
	OnTrackRemoteMuted(request *livekit.MuteTrackRequest)
	OnTokenRefresh(refreshToken string)
	OnLeave(*livekit.LeaveRequest)
	OnLocalTrackSubscribed(trackSubscribed *livekit.TrackSubscribed)
	OnSubscribedQualityUpdate(subscribedQualityUpdate *livekit.SubscribedQualityUpdate)
}

type SignalTransport

type SignalTransport interface {
	SetLogger(l protoLogger.Logger)

	Start()
	IsStarted() bool
	Close()
	Join(
		ctx context.Context,
		url string,
		token string,
		connectParams ConnectParams,
	) (proto.Message, error)
	Reconnect(
		urlPrefix string,
		token string,
		connectParams ConnectParams,
		participantSID string,
	) (proto.Message, error)
	SendMessage(msg proto.Message) error
}

func NewSignalTransportWebSocket

func NewSignalTransportWebSocket(params SignalTransportWebSocketParams) SignalTransport

type SignalTransportHandler

type SignalTransportHandler interface {
	OnTransportClose()
}

type SignalTransportWebSocketParams

type SignalTransportWebSocketParams struct {
	Logger                 logger.Logger
	Version                string
	Protocol               int
	SignalTransportHandler SignalTransportHandler
	SignalHandler          SignalHandler
}

type Signalling

type Signalling interface {
	SetLogger(l protoLogger.Logger)

	SignalLeaveRequest(leave *livekit.LeaveRequest) proto.Message
	SignalICECandidate(trickle *livekit.TrickleRequest) proto.Message
	SignalSdpOffer(offer *livekit.SessionDescription) proto.Message
	SignalSdpAnswer(answer *livekit.SessionDescription) proto.Message
	SignalSimulateScenario(simulate *livekit.SimulateScenario) proto.Message
	SignalMuteTrack(mute *livekit.MuteTrackRequest) proto.Message
	SignalUpdateSubscription(updateSubscription *livekit.UpdateSubscription) proto.Message
	SignalSyncState(syncState *livekit.SyncState) proto.Message
	SignalAddTrack(addTrack *livekit.AddTrackRequest) proto.Message
	SignalSubscriptionPermission(subscriptionPermission *livekit.SubscriptionPermission) proto.Message
	SignalUpdateTrackSettings(settings *livekit.UpdateTrackSettings) proto.Message
	SignalUpdateParticipantMetadata(metadata *livekit.UpdateParticipantMetadata) proto.Message

	AckMessageId(ackMessageId uint32)
	SetLastProcessedRemoteMessageId(lastProcessedRemoteMessageId uint32)
}

func NewSignalling

func NewSignalling(params SignallingParams) Signalling

func NewSignallingv2

func NewSignallingv2(params Signallingv2Params) Signalling

type SignallingParams

type SignallingParams struct {
	Logger logger.Logger
}

type Signallingv2Params

type Signallingv2Params struct {
	Logger logger.Logger
}

Jump to

Keyboard shortcuts

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