signalling

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2025 License: Apache-2.0 Imports: 24 Imported by: 0

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")
)

Functions

func NewHTTPHeaderWithToken

func NewHTTPHeaderWithToken(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

	Metadata string // See WithMetadata

	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

type SignalHandlerParams

type SignalHandlerParams struct {
	Logger    logger.Logger
	Processor SignalProcessor
}

type SignalProcessor

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

type SignalTransport

type SignalTransport interface {
	SetLogger(l protoLogger.Logger)

	Start()
	IsStarted() bool
	Close()
	Join(
		ctx context.Context,
		url string,
		token string,
		connectParams ConnectParams,
		addTrackRequests []*media_router.AddTrackRequest,
		publisherOffer webrtc.SessionDescription,
	) error
	Reconnect(
		url string,
		token string,
		connectParams ConnectParams,
		participantSID string,
	) 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
	Signalling             Signalling
	SignalTransportHandler SignalTransportHandler
	SignalHandler          SignalHandler
}

type Signalling

type Signalling interface {
	SetLogger(l protoLogger.Logger)

	Path() string
	ValidatePath() string

	PublishInJoin() bool

	ConnectQueryParams(
		version string,
		protocol int,
		connectParams *ConnectParams,
		addTrackRequests []*media_router.AddTrackRequest,
		publisherOffer webrtc.SessionDescription,
		participantSID string,
	) (string, error)
	HTTPRequestForValidate(
		ctx context.Context,
		version string,
		protocol int,
		urlPrefix string,
		token string,
		connectParams *ConnectParams,
		participantSID string,
	) (*http.Request, error)
	DecodeErrorResponse(errorDetails []byte) string

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

func NewSignalling

func NewSignalling(params SignallingParams) Signalling

func NewSignallingJoinRequest

func NewSignallingJoinRequest(params SignallingJoinRequestParams) Signalling

type SignallingJoinRequestParams

type SignallingJoinRequestParams struct {
	Logger logger.Logger
}

type SignallingParams

type SignallingParams struct {
	Logger logger.Logger
}

Jump to

Keyboard shortcuts

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