z, ? | toggle help (this) |
space, → | next slide |
shift-space, ← | previous slide |
d | toggle debug mode |
## <ret> | go to slide # |
c, t | table of contents (vi) |
f | toggle footer |
g | toggle follow |
r | reload slides |
n | toggle notes |
p | run preshow |
P | toggle pause |
s | choose style |
#!/usr/bin/env ruby
require 'rubygems'
require 'ffi-rzmq'
context = ZMQ::Context.new
puts "Connecting to hello world server..."
requester = context.socket(ZMQ::REQ)
requester.connect("tcp://localhost:5555")
0.upto(9) do |request_nbr|
puts "Sending request #{request_nbr}..."
requester.send_string "Hello"
reply = ''
requester.recv_string(reply)
puts "Received reply #{request_nbr}: [#{reply}]"
end
#!/usr/bin/env ruby
require 'rubygems'
require 'ffi-rzmq'
context = ZMQ::Context.new
puts "Starting Hello World server..."
socket = context.socket(ZMQ::REP)
socket.bind("tcp://*:5555")
while true do
request = ''
rc = socket.recv_string(request)
puts "Received request. Data: #{request.inspect}"
sleep 1
socket.send_string("world")
end
#!/usr/bin/env ruby
require 'ffi-rzmq'
context = ZMQ::Context.new
subscriber = context.socket ZMQ::SUB
subscriber.connect "tcp://localhost:5563"
subscriber.setsockopt ZMQ::SUBSCRIBE, 'ALL'
subscriber.setsockopt ZMQ::SUBSCRIBE, 'A'
loop do
# Two recv s because of the multi-part message.
address = ''
subscriber.recv_string address
content = ''
subscriber.recv_string content
puts "[#{address}] #{content}"
end
#!/usr/bin/env ruby
require 'ffi-rzmq'
context = ZMQ::Context.new
subscriber = context.socket ZMQ::SUB
subscriber.connect "tcp://localhost:5563"
subscriber.setsockopt ZMQ::SUBSCRIBE, 'ALL'
subscriber.setsockopt ZMQ::SUBSCRIBE, 'B'
loop do
# Two recv s because of the multi-part message.
address = ''
subscriber.recv_string address
content = ''
subscriber.recv_string content
puts "[#{address}] #{content}"
end
#!/usr/bin/env ruby
require 'ffi-rzmq'
context = ZMQ::Context.new
publisher = context.socket ZMQ::PUB
publisher.bind "tcp://*:5563"
loop do
publisher.send_string 'A', ZMQ::SNDMORE
publisher.send_string "Message for A"
publisher.send_string 'B', ZMQ::SNDMORE
publisher.send_string "Message for B"
publisher.send_string 'ALL', ZMQ::SNDMORE
publisher.send_string "Message for ALL"
sleep 1
end
conn = Faraday.new 'http://localhost:4567'
t=Time.now ; 3000.times { conn.get('/hi') } ; Time.now - t