class Aggro::ZeroMQTransport::Publisher

Public: Handles publishing messages on a given endpoint.

Public Class Methods

new(endpoint) click to toggle source
# File lib/aggro/zeromq_transport/publisher.rb, line 5
def initialize(endpoint)
  @endpoint = endpoint
end

Public Instance Methods

close_socket() click to toggle source
# File lib/aggro/zeromq_transport/publisher.rb, line 9
def close_socket
  return unless @open && @pub_socket

  @pub_socket.close if @pub_socket
  @pub_socket = nil
  @open = false
end
open_socket() click to toggle source
# File lib/aggro/zeromq_transport/publisher.rb, line 17
def open_socket
  return @pub_socket if @open

  @open = true

  @pub_socket = ZeroMQTransport.context.socket(ZMQ::PUB)
  @pub_socket.setsockopt ZMQ::LINGER, 1_000
  @pub_socket.bind @endpoint

  @pub_socket
end
publish(message) click to toggle source
# File lib/aggro/zeromq_transport/publisher.rb, line 29
def publish(message)
  pub_socket.send_string message.to_s
end

Private Instance Methods

pub_socket() click to toggle source
# File lib/aggro/zeromq_transport/publisher.rb, line 35
def pub_socket
  @pub_socket || open_socket
end