Class: EZMQ::Subscriber

Inherits:
Socket
  • Object
show all
Defined in:
lib/ezmq.rb

Overview

Subscribe socket that listens for messages with an optional topic.

Instance Attribute Summary (collapse)

Attributes inherited from Socket

#context, #decode, #encode, #socket

Instance Method Summary (collapse)

Methods inherited from Socket

#bind, #connect, #listen, #receive, #send

Constructor Details

- (Publisher) initialize(**options)

Note:

The default behaviour is to output and messages received to STDOUT.

Creates a new Subscriber socket.

Parameters:

  • options (Hash)

    optional parameters.

Options Hash (**options):

  • topic (String)

    a topic to subscribe to.

See Also:



232
233
234
235
# File 'lib/ezmq.rb', line 232

def initialize(**options)
  super :connect, ZMQ::SUB, options
  subscribe options[:topic] if options[:topic]
end

Instance Attribute Details

- (Object) action

Returns the value of attribute action



220
221
222
# File 'lib/ezmq.rb', line 220

def action
  @action
end

Instance Method Details

- (Boolean) subscribe(topic)

Note:

By default, a Subscriber filters all incoming messages. Without

Establishes a new message filter on the socket.

calling subscribe at least once, no messages will be accepted. If topic was provided, #initialize calls #subscribe automatically.

prefix will be accepted.

Parameters:

  • topic (String)

    a topic to subscribe to. Messages matching this

Returns:

  • (Boolean)

    was subscription successful?



248
249
250
# File 'lib/ezmq.rb', line 248

def subscribe(topic)
  @socket.setsockopt(ZMQ::SUBSCRIBE, topic) == 0
end

- (Boolean) unsubscribe(topic)

Removes a message filter (as set with subscribe) from the socket.

Parameters:

  • topic (String)

    the topic to unsubscribe from. If multiple filters with the same topic are set, this will only remove one.

Returns:

  • (Boolean)

    was unsubscription successful?



259
260
261
# File 'lib/ezmq.rb', line 259

def unsubscribe(topic)
  @socket.setsockopt(ZMQ::UNSUBSCRIBE, topic) == 0
end