Sha256: 3633896ee35f429ca5611844eb7c0085d976281335c7a8b2ed750490c0945f00
Contents?: true
Size: 1.76 KB
Versions: 6
Compression:
Stored size: 1.76 KB
Contents
# frozen_string_literal: true module RubyRabbitmqJanus module Janus # Define an module for manipulate messages between apps and Janus module Transactions # @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv> # # # Manage a transactions # # This class work with Janus and send a series of message class Transaction # Initialize a transaction # # @param [Fixnum] session # Use a session identifier for created message def initialize(session) @rabbit = RubyRabbitmqJanus::Rabbit::Connect.new @session = session @publisher = @exclusive = nil rescue raise Errors::Janus::Transaction::Initialize end private attr_reader :rabbit, :session, :response, :handle, :publisher, :exclusive def choose_queue chan = @rabbit.channel @publisher = if @exclusive ::Log.debug \ 'Choose an queue Exclusive : ampq.gen-xxx' Rabbit::Publisher::Exclusive.new(chan, '') else ::Log.debug \ 'Choose an queue non Exclusive : to-janus' Rabbit::Publisher::NonExclusive.new(chan) end end def send_a_message ::Log.info 'Publish a message ...' response = read_response(@publisher.publish(yield)) Janus::Responses::Standard.new(response) end def read_response(publish) @exclusive ? publish : {} end end end end end require 'rrj/janus/transactions/session' require 'rrj/janus/transactions/handle' require 'rrj/janus/transactions/admin'
Version data entries
6 entries across 6 versions & 1 rubygems