Пример #1
0
def publisher():
    port = "5556"

    server = zmq_server("99865", [])

    context = zmq.Context()
    socket = context.socket(zmq.PUB)
    socket.bind("tcp://*:%s" % port)
    #print "started subscriber, ", port

    def get_time():
        return (datetime.datetime.utcnow() - datetime.datetime(2015,1,1)).total_seconds()

    def generate_random_message():
        msg = {'owner': port,
               'msg'  : 'blah blah blah!',
               'id'   : str(uuid.uuid4()),      # msg id
               'type' : 'NORMAL',                # 'NORMAL', 'ACK_TO_OWNER'
               'send_time': get_time()
        }
        return msg

    time.sleep(2)  # some time for establish connections


    for i in range(num_msgs):
        msg = generate_random_message()
        #print 'Msg is ' , msg
        socket.send("%s" % msg)
        #print "published ", msg
        # keep track of all message receiving time.
        #time.sleep(2)
        #status()
        #print 'msg', msg,  'has sent'

    while sum(server.msgs_acks.values()) < num_msgs*num_subs:
        #print len(n.msgs_stats.keys())
        time.sleep(1)
    k = 0
    mean = 0
    for i in server.msgs_stats:
        k += 1
        mean += server.msgs_stats[i]
    print num_subs, mean/num_msgs
Пример #2
0
import zmq
import sys
import time
import uuid
import datetime
import ast
from gossip import Node as zmq_server

if __name__ == '__main__':
    port = "5556"

    if len(sys.argv) > 1:
        port =  sys.argv[1]
        int(port)

    server = zmq_server("99865", [])

    context = zmq.Context()
    socket = context.socket(zmq.PUB)
    socket.bind("tcp://*:%s" % port)

    def get_time():
        return (datetime.datetime.utcnow() - datetime.datetime(2015,1,1)).total_seconds()

    def generate_random_message():
        msg = {'owner': port,
               'msg'  : 'blah blah blah!',
               'id'   : str(uuid.uuid4()),      # msg id
               'type' : 'NORMAL',                # 'NORMAL', 'ACK_TO_OWNER'
               'send_time': get_time()
        }