Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrEmptySignalingID = errors.New("signaling id cannot be empty")
ErrEmptySignalingID is returned if the signaling id cannot be empty.
Functions ¶
This section is empty.
Types ¶
type HandleSignalPeer ¶
type HandleSignalPeer interface {
// Directive indicates HandleSignalPeer is a directive.
directive.Directive
// SignalingID returns the identifier of the signaling channel.
// Cannot be empty.
HandleSignalingID() string
// HandleSignalPeerSession returns the handle to the signaling session.
// Cannot be empty.
HandleSignalPeerSession() SignalPeerSession
}
HandleSignalPeer is a directive to handle an incoming signaling session.
Does not expect any values to be resolved.
func NewHandleSignalPeer ¶
func NewHandleSignalPeer(signalingID string, signalPeerSession SignalPeerSession) HandleSignalPeer
NewHandleSignalPeer constructs a new HandleSignalPeer directive.
type SignalPeer ¶
type SignalPeer interface {
// Directive indicates SignalPeer is a directive.
directive.Directive
// SignalingID returns the identifier of the signaling channel to use.
// Can be empty to use any channel.
SignalingID() string
// SignalLocalPeerID returns the local peer ID to signal from.
// Can be empty.
SignalLocalPeerID() peer.ID
// SignalRemotePeerID returns the remote peer ID to signal to.
// Cannot be empty.
SignalRemotePeerID() peer.ID
}
SignalPeer is a directive to establish a signaling channel with a remote peer.
func NewSignalPeer ¶
func NewSignalPeer(signalingID string, localPeerID, remotePeerID peer.ID) SignalPeer
NewSignalPeer constructs a new SignalPeer directive.
type SignalPeerSession ¶
type SignalPeerSession interface {
// GetLocalPeerID returns the local peer ID.
GetLocalPeerID() peer.ID
// GetRemotePeerID returns the remote peer ID.
GetRemotePeerID() peer.ID
// Send transmits a message to the remote peer.
// Blocks until the context is canceled OR the message is acked.
Send(ctx context.Context, msg []byte) error
// Recv waits for and acknowledges an incoming message from the remote peer.
Recv(ctx context.Context) ([]byte, error)
}
SignalPeerSession is a handle to a Signaling session with a remote peer.
type SignalPeerValue ¶
type SignalPeerValue = SignalPeerSession
SignalPeerValue is the value of the SignalPeer directive.
func ExSignalPeer ¶
func ExSignalPeer( ctx context.Context, b bus.Bus, signalingID string, localPeerID, remotePeerID peer.ID, returnIfIdle bool, ) (SignalPeerValue, func(), error)
ExSignalPeer opens a SignalPeerSession with the remote peer ID.
signalingID and localPeerID are optional returns a release function if returnIfIdle: returns nil, nil, nil if not found (idle directive)