require "zhelpers"
local zmq = require "lzmq"
---------------------------PULL--------------------
local ztimer = require "lzmq.timer"
local context = zmq.context()
local receiver,err = context:socket{zmq.PULL,bind = "tcp://*:5558"}
zassert(receiver, err)
-- Wait for start of batch
-- receiver:recv()
-- Start our clock now
local timer = ztimer.monotonic():start()
print("111111111")
-- Process 100 confirmations
for task_nbr = 1, 10 do
print("22222222")
local message = receiver:recv();
if task_nbr % 10 == 0 then
print(task_nbr)
print(message)
else
print (task_nbr)
end
io.flush()
end
-- Calculate and report duration of batch
printf ("Total elapsed time: %d msec\n", timer:stop());
-----------------------------REQ-------------------
print("Connecting to hello world server ...")
local context = zmq.context()
local requester, err = context:socket{zmq.REQ,
connect = "tcp://localhost:5555"
}
zassert(requester, err)
for request_nbr = 0, 9 do
print ("Sending Hello " .. request_nbr .. "...")
requester:send("Hello")
local buffer = requester:recv()
print("Received World " .. request_nbr)
end
----------------------------SUB-------------------
--SUB会过滤PUB来得消息,由filter来定义数据格式
local filter =""
printf("Collecting updates from weather server ...\n")
local context = zmq.context()
local subscriber, err = context:socket{zmq.SUB,
subscribe = filter;
-- connect = "tcp://172.15.2.4:6000";
connect = "tcp://localhost:5554";
}
zassert(subscriber,err)
print(subscriber)
local update_nbr, total_temp = 100, 0
-- for i = 1, update_nbr do
while(1) do
print("~~~~~~~~~~~")
local message = subscriber:recv()
-- local y = {}
-- y = string.split(message,%s)
-- print(y..":"..#y)
local x = ""
local table1 = {}
for name1 in string.gmatch(message,"([%d]*)%s+([-]?[%d-]*)%s+([-]?[%d-]*)") do
table.insert(table1.name1)
print(name1)
end
for i=1,7 do
-- x = x..table1[i]..","
print(i)
print(table1[i])
end
-- for name2 in string.gmatch(message,"title_name %w+") do
-- print(name2)
-- x = x..","..name2
-- end
print(x)
print(total_temp.."-> "..message)
total_temp = total_temp + 1
end
-- printf ("Average temperature for zipcode '%s' was %dF\n",
-- filter, (total_temp / update_nbr))
local zmq = require "lzmq"
---------------------------PULL--------------------
local ztimer = require "lzmq.timer"
local context = zmq.context()
local receiver,err = context:socket{zmq.PULL,bind = "tcp://*:5558"}
zassert(receiver, err)
-- Wait for start of batch
-- receiver:recv()
-- Start our clock now
local timer = ztimer.monotonic():start()
print("111111111")
-- Process 100 confirmations
for task_nbr = 1, 10 do
print("22222222")
local message = receiver:recv();
if task_nbr % 10 == 0 then
print(task_nbr)
print(message)
else
print (task_nbr)
end
io.flush()
end
-- Calculate and report duration of batch
printf ("Total elapsed time: %d msec\n", timer:stop());
-----------------------------REQ-------------------
print("Connecting to hello world server ...")
local context = zmq.context()
local requester, err = context:socket{zmq.REQ,
connect = "tcp://localhost:5555"
}
zassert(requester, err)
for request_nbr = 0, 9 do
print ("Sending Hello " .. request_nbr .. "...")
requester:send("Hello")
local buffer = requester:recv()
print("Received World " .. request_nbr)
end
----------------------------SUB-------------------
--SUB会过滤PUB来得消息,由filter来定义数据格式
local filter =""
printf("Collecting updates from weather server ...\n")
local context = zmq.context()
local subscriber, err = context:socket{zmq.SUB,
subscribe = filter;
-- connect = "tcp://172.15.2.4:6000";
connect = "tcp://localhost:5554";
}
zassert(subscriber,err)
print(subscriber)
local update_nbr, total_temp = 100, 0
-- for i = 1, update_nbr do
while(1) do
print("~~~~~~~~~~~")
local message = subscriber:recv()
-- local y = {}
-- y = string.split(message,%s)
-- print(y..":"..#y)
local x = ""
local table1 = {}
for name1 in string.gmatch(message,"([%d]*)%s+([-]?[%d-]*)%s+([-]?[%d-]*)") do
table.insert(table1.name1)
print(name1)
end
for i=1,7 do
-- x = x..table1[i]..","
print(i)
print(table1[i])
end
-- for name2 in string.gmatch(message,"title_name %w+") do
-- print(name2)
-- x = x..","..name2
-- end
print(x)
print(total_temp.."-> "..message)
total_temp = total_temp + 1
end
-- printf ("Average temperature for zipcode '%s' was %dF\n",
-- filter, (total_temp / update_nbr))