Try Forwarding multiple messages per IO event notification.

pull/47/merge
Robert G. Jakabosky 14 years ago
parent 8411d346c9
commit b043c7631f

@ -11,14 +11,25 @@ xreq:bind('tcp://127.0.0.1:13333')
local xrep = poll_zsock(c:socket(zmq.XREP)) local xrep = poll_zsock(c:socket(zmq.XREP))
xrep:bind('tcp://127.0.0.1:13334') xrep:bind('tcp://127.0.0.1:13334')
local max_recv = 10
local function forward_io(src,dst) local function forward_io(src,dst)
src.on_data = function() src.on_data = function()
for i=1,max_recv do
repeat repeat
local data = assert(src:recv(zmq.NOBLOCK)) local data, err = src:recv(zmq.NOBLOCK)
if not data then
if err == 'timeout' then
return
else
error("socket recv error:" .. err)
end
end
local more = src:getopt(zmq.RCVMORE) > 0 local more = src:getopt(zmq.RCVMORE) > 0
dst:send(data,more and zmq.SNDMORE or 0) dst:send(data,more and zmq.SNDMORE or 0)
until not more until not more
end end
end
end end
forward_io(xrep,xreq) forward_io(xrep,xreq)

Loading…
Cancel
Save