zmq-pubsub-player/record_sub.py
2025-07-01 16:00:24 +02:00

60 lines
1.3 KiB
Python

"""
Record messages
"""
from dataclasses import dataclass
from typing import Any
import tqdm
import zmq
import random
import sys
import time
import json
import jsonlines
port = "99174"
if len(sys.argv) > 1:
port = sys.argv[1]
int(port)
if len(sys.argv) > 2:
fn = sys.argv[2]
else:
fn = "messages.jsonl"
context = zmq.Context()
socket = context.socket(zmq.SUB)
addr = f"tcp://100.109.175.82:{port}"
socket.connect (addr)
socket.setsockopt_string(zmq.SUBSCRIBE, "")
#print('connected')
# Subscribe to zipcode, default is NYC, 10001
#topicfilter = "10001"
#socket.setsockopt(zmq.SUBSCRIBE, topicfilter)
last = time.time()
print(f"Listen to {addr}, write to {fn}")
with jsonlines.open(fn, mode='w', flush=True) as writer:
with tqdm.tqdm() as pbar:
while True:
pbar.update()
string = socket.recv_string()
data = json.loads(string)
now = time.time()
msg = {
'data': data,
'offset': now - last
}
writer.write(msg)
last = now
#topic, messagedata = string.split()
#total_value += int(messagedata)
#print topic, messagedata
#print "Average messagedata value for topic '%s' was %dF" % (topicfilter, total_value / update_nbr)