Skip to content

Instantly share code, notes, and snippets.

@grantr
Last active December 10, 2015 21:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save grantr/4496493 to your computer and use it in GitHub Desktop.
Save grantr/4496493 to your computer and use it in GitHub Desktop.
ffi-rzmq socket monitor test
require 'ffi-rzmq'
class Event
class Layout < FFI::Struct
layout :event, :int,
:data, ZMQ::LibZMQ::EventData
end
def initialize(msg)
@data = Layout.new(msg.data)
end
def event
@data[:event]
end
def data
@data[:data]
end
end
context = ZMQ::Context.new
socket = context.socket ZMQ::DEALER
ZMQ::LibZMQ.zmq_socket_monitor(socket.socket, "inproc://monitor.dealer", 1023)
listener = context.socket ZMQ::PAIR
listener.connect("inproc://monitor.dealer")
socket.bind("tcp://127.0.0.1:58000")
m = ZMQ::Message.new; listener.recvmsg m
e = Event.new(m)
puts e.event
puts e.data.addr
@chuckremes
Copy link

require 'rubygems'
require 'ffi-rzmq'
context = ZMQ::Context.new
socket = context.socket ZMQ::DEALER
#rc = ZMQ::LibZMQ.zmq_socket_monitor(socket, "inproc://monitor.dealer", 0)
rc = ZMQ::LibZMQ.zmq_socket_monitor(socket.socket, "inproc://monitor.dealer", 0)
p rc

@chuckremes
Copy link

require 'rubygems'
require 'ffi-rzmq'

context = ZMQ::Context.new
socket = context.socket ZMQ::DEALER
ZMQ::LibZMQ.zmq_socket_monitor(socket.socket, "inproc://monitor.dealer", 1023)
listener = context.socket ZMQ::PAIR
listener.connect("inproc://monitor.dealer")
socket.bind("tcp://127.0.0.1:58000")
m = ZMQ::Message.new
listener.recvmsg m
e = ZMQ::LibZMQ::EventData.new(m.data)

p e

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment