Documentation ¶
Overview ¶
Package janus is a Golang implementation of the Janus API, used to interact with the Janus WebRTC Gateway.
Index ¶
- type AckMsg
- type BaseMsg
- type DetachedMsg
- type ErrorData
- type ErrorMsg
- type EventMsg
- type Gateway
- type Handle
- func (handle *Handle) Detach(ctx context.Context, msg BaseMsg) (*AckMsg, error)
- func (handle *Handle) Message(ctx context.Context, msg HandlerMessageJsep) (ack *AckMsg, err error)
- func (handle *Handle) Request(ctx context.Context, msg HandlerMessage) (*SuccessMsg, error)
- func (handle *Handle) Trickle(ctx context.Context, msg TrickleOne) (*AckMsg, error)
- func (handle *Handle) TrickleMany(ctx context.Context, msg TrickleMany) (*AckMsg, error)
- type HandlerMessage
- type HandlerMessageJsep
- type HangupMsg
- type InfoMsg
- type MediaMsg
- type PluginData
- type PluginInfo
- type Session
- func (session *Session) AttachSession(ctx context.Context, msg BaseMsg) (*SuccessMsg, error)
- func (session *Session) DestroySession(ctx context.Context, msg BaseMsg) (ack *SuccessMsg, err error)
- func (session *Session) KeepAlive(ctx context.Context, msg BaseMsg) (*AckMsg, error)
- func (s *Session) LongPoll(ctx context.Context, maxEv int, msg BaseMsg) (events []any, err error)
- type SlowLinkMsg
- type SuccessData
- type SuccessMsg
- type TimeoutMsg
- type TrickleMany
- type TrickleOne
- type WebRTCUpMsg
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DetachedMsg ¶
type DetachedMsg struct{}
type EventMsg ¶
type EventMsg struct { Type string `json:"janus"` ID string `json:"transaction"` Session uint64 `json:"session_id"` Handle uint64 `json:"sender,omitempty"` Plugindata PluginData `json:"plugindata"` Jsep map[string]interface{} `json:"jsep"` }
event types
type Gateway ¶
type Gateway struct { // Sessions is a map of the currently active sessions to the gateway. Sessions map[uint64]*Session // Access to the Sessions map should be synchronized with the Gateway.Lock() // and Gateway.Unlock() methods provided by the embeded sync.Mutex. sync.RWMutex // contains filtered or unexported fields }
Gateway represents a connection to an instance of the Janus Gateway.
func (*Gateway) CreateSession ¶
CreateSession sends a create request to the Gateway. On success, a new Session will be returned and error will be nil.
func (*Gateway) GetErrChan ¶
GetErrChan returns a channels through which the caller can check and react to connectivity errors
type Handle ¶
type Handle struct { // ID is the handle_id of this plugin handle ID uint64 // Type // pub or sub Type string //User // Userid User string // Events is a receive only channel that can be used to receive events // related to this handle from the gateway. Events chan interface{} // contains filtered or unexported fields }
Handle represents a handle to a plugin instance on the Gateway.
func (*Handle) Detach ¶
Detach sends a detach request to the Gateway to remove this handle. On success, an AckMsg will be returned and error will be nil.
func (*Handle) Message ¶
Message sends a message request to a plugin handle on the Gateway. body should be the plugin data to be passed to the plugin, and jsep should contain an optional SDP offer/answer to establish a WebRTC PeerConnection. On success, an AckMsg will be returned and error will be nil.
func (*Handle) Request ¶
func (handle *Handle) Request(ctx context.Context, msg HandlerMessage) (*SuccessMsg, error)
Request sends a sync request
func (*Handle) Trickle ¶
Trickle sends a trickle request to the Gateway as part of establishing a new PeerConnection with a plugin. candidate should be a single ICE candidate, or a completed object to signify that all candidates have been sent:
{ "completed": true }
On success, an AckMsg will be returned and error will be nil.
func (*Handle) TrickleMany ¶
TrickleMany sends a trickle request to the Gateway as part of establishing a new PeerConnection with a plugin. candidates should be an array of ICE candidates. On success, an AckMsg will be returned and error will be nil.
type HandlerMessage ¶
type HandlerMessageJsep ¶
type HandlerMessageJsep struct { HandlerMessage Jsep map[string]any `json:"jsep,omitempty"` }
type PluginData ¶
type PluginInfo ¶
type Session ¶
type Session struct { // ID is the session_id of this session ID uint64 Data map[string]any // Additional data for the session injected by external sources // Handles is a map of plugin handles within this session Handles map[uint64]*Handle Events chan interface{} // Access to the Handles map should be synchronized with the Session.Lock() // and Session.Unlock() methods provided by the embeded sync.Mutex. sync.Mutex // contains filtered or unexported fields }
Session represents a session instance on the Janus Gateway.
func (*Session) AttachSession ¶
AttachSession sends an attach request to the Gateway within this session. plugin should be the unique string of the plugin to attach to. On success, a new Handle will be returned and error will be nil.
func (*Session) DestroySession ¶
func (session *Session) DestroySession(ctx context.Context, msg BaseMsg) (ack *SuccessMsg, err error)
DestroySession sends a destroy request to the Gateway to tear down this session. On success, the Session will be removed from the Gateway.Sessions map, an AckMsg will be returned and error will be nil.
type SlowLinkMsg ¶
type SuccessData ¶
type SuccessData struct {
ID uint64 `json:"id"`
}
type SuccessMsg ¶
type SuccessMsg struct { Type string `json:"janus"` ID string `json:"transaction"` Data SuccessData `json:"data,omitempty"` }
type TimeoutMsg ¶
type TimeoutMsg struct {
Session uint64 `json:"session_id"`
}