Documentation
¶
Overview ¶
Package janus is a Golang implementation of the Janus API, used to interact with the Janus WebRTC Gateway.
Index ¶
- func ParseEvent(data []byte) (interface{}, error)
- func StructToMap(obj interface{}) (map[string]interface{}, error)
- type AckMsg
- type BaseEvent
- type BaseMsg
- type CoreEvent
- type DateTime
- type DetachedMsg
- type ErrorData
- type ErrorMsg
- type EventMsg
- type ExternalEvent
- type ExternalEventBody
- type Gateway
- type Handle
- func (handle *Handle) Detach() (*AckMsg, error)
- func (handle *Handle) Message(body, jsep interface{}) (*EventMsg, error)
- func (handle *Handle) Request(body interface{}) (*SuccessMsg, error)
- func (handle *Handle) Trickle(candidate interface{}) (*AckMsg, error)
- func (handle *Handle) TrickleMany(candidates interface{}) (*AckMsg, error)
- type HandleEvent
- type HandleEventBody
- type HangupMsg
- type InfoMsg
- type JSEPEvent
- type JSEPEventBody
- type JSEPInfo
- type MediaEvent
- type MediaMsg
- type PluginData
- type PluginEvent
- type PluginEventBody
- type PluginInfo
- type Session
- type SessionEvent
- type SessionEventBody
- type SlowLinkMsg
- type SuccessData
- type SuccessMsg
- type TextroomPostMsg
- type TimeoutMsg
- type TransportEvent
- type TransportEventBody
- type WebRTCEvent
- type WebRTCUpMsg
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ParseEvent ¶
func StructToMap ¶
Types ¶
type BaseMsg ¶
type BaseMsg struct { Type string `json:"janus"` ID string `json:"transaction"` Session uint64 `json:"session_id"` Handle uint64 `json:"sender"` PluginData PluginData `json:"plugindata"` }
func ParseMessage ¶
type DetachedMsg ¶
type DetachedMsg struct{}
type EventMsg ¶
type EventMsg struct { Plugindata PluginData Jsep map[string]interface{} Session uint64 `json:"session_id"` Handle uint64 `json:"sender"` }
type ExternalEvent ¶
type ExternalEvent struct { BaseEvent Event ExternalEventBody `json:"event"` }
type ExternalEventBody ¶
type Gateway ¶
type Gateway struct { // Sessions is a map of the currently active sessions to the gateway. Sessions map[uint64]*Session // Stored token to use for authentication. // See https://janus.conf.meetecho.com/docs/auth.html#token Token string // Access to the Sessions map should be synchronized with the Gateway.Lock() // and Gateway.Unlock() methods provided by the embedded sync.Mutex. sync.Mutex // contains filtered or unexported fields }
Gateway represents a connection to an instance of the Janus Gateway.
func (*Gateway) Create ¶
Create 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 EventMsg will be returned and error will be nil.
func (*Handle) Request ¶
func (handle *Handle) Request(body interface{}) (*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 HandleEvent ¶
type HandleEvent struct { BaseEvent Event HandleEventBody `json:"event"` }
type HandleEventBody ¶
type JSEPEvent ¶
type JSEPEvent struct { BaseEvent Event JSEPEventBody `json:"event"` }
type JSEPEventBody ¶
type MediaEvent ¶
type MediaEvent struct {
BaseEvent
}
type PluginData ¶
type PluginEvent ¶
type PluginEvent struct { BaseEvent Event PluginEventBody `json:"event"` }
type PluginEventBody ¶
type PluginInfo ¶
type Session ¶
type Session struct { // ID is the session_id of this session ID uint64 // 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) Attach ¶
Attach 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.
type SessionEvent ¶
type SessionEvent struct { BaseEvent Event SessionEventBody `json:"event"` }
type SessionEventBody ¶
type SlowLinkMsg ¶
type SuccessData ¶
type SuccessData struct {
ID uint64
}
type SuccessMsg ¶
type SuccessMsg struct { Data SuccessData PluginData PluginData Session uint64 `json:"session_id"` Handle uint64 `json:"sender"` }
type TextroomPostMsg ¶
type TextroomPostMsg struct { Textroom string Room int // this has changed to string in janus API From string Date DateTime Text string Whisper bool }
func ParseTextroomMessage ¶
func ParseTextroomMessage(data []byte) (*TextroomPostMsg, error)
type TimeoutMsg ¶
type TimeoutMsg struct {
Session uint64 `json:"session_id"`
}
type TransportEvent ¶
type TransportEvent struct { BaseEvent Event TransportEventBody `json:"event"` }
type TransportEventBody ¶
type WebRTCEvent ¶
type WebRTCEvent struct {
BaseEvent
}