class JanusGateway::Plugin::Rtpbroadcast

Public Class Methods

new(client, session) click to toggle source

@param [JanusGateway::Client] client @param [JanusGateway::Resource::Session] session

Calls superclass method JanusGateway::Resource::Plugin::new
# File lib/janus_gateway/plugin/rtpbroadcast.rb, line 5
def initialize(client, session)
  super(client, session, 'janus.plugin.cm.rtpbroadcast')
end

Public Instance Methods

list() click to toggle source

@return [Concurrent::Promise]

# File lib/janus_gateway/plugin/rtpbroadcast.rb, line 10
def list
  promise = Concurrent::Promise.new

  client.send_transaction(
    janus: 'message',
    session_id: session.id,
    handle_id: id,
    body: { request: 'list' }
  ).then do |data|
    plugindata = data['plugindata']['data']
    if plugindata['error_code'].nil?
      _on_success(data)

      promise.set(data).execute
    else
      error = JanusGateway::Error.new(plugindata['error_code'], plugindata['error'])

      _on_error(error)

      promise.fail(error).execute
    end
  end.rescue do |error|
    promise.fail(error).execute
  end

  promise
end
watch_udp(mountpoint_id, streams) click to toggle source

@param [String] mountpoint_id @param [Array] streams @return [Concurrent::Promise]

# File lib/janus_gateway/plugin/rtpbroadcast.rb, line 41
def watch_udp(mountpoint_id, streams)
  promise = Concurrent::Promise.new

  client.send_transaction(
    janus: 'message',
    session_id: session.id,
    handle_id: id,
    body: {
      request: 'watch-udp',
      id: mountpoint_id,
      streams: streams
    }
  ).then do |data|
    if data['error_code'].nil?
      _on_success(data)

      promise.set(data).execute
    else
      error = JanusGateway::Error.new(data['error_code'], data['error'])

      _on_error(error)

      promise.fail(error).execute
    end
  end.rescue do |error|
    promise.fail(error).execute
  end

  promise
end

Private Instance Methods

_on_error(error) click to toggle source
# File lib/janus_gateway/plugin/rtpbroadcast.rb, line 80
def _on_error(error)
  emit :error, error
end
_on_success(data) click to toggle source
# File lib/janus_gateway/plugin/rtpbroadcast.rb, line 74
def _on_success(data)
  @data = data['plugindata']

  emit :success
end