Messages travel from the Publisher to the Subscribers.
# The 'cat' subscriber
require 'nanomsg'

sub = NanoMsg::SubSocket.new
sub.connect('tcp://127.0.0.1:4569')

sub.subscribe 'cat'
p sub.recv # => 'cat 45678'
# And here's the 'dog' subscriber
require 'nanomsg'

sub = NanoMsg::SubSocket.new
sub.connect('tcp://127.0.0.1:4569')

sub.subscribe 'dog'
p sub.recv # => 'dog 12345'
require 'nanomsg'

pub = NanoMsg::PubSocket.new
pub.bind('tcp://127.0.0.1:4569')

loop do
  pub.send 'dog 12345'
  pub.send 'cat 45678'

  sleep 1
end