diff options
author | 2015-08-24 13:22:48 +0300 | |
---|---|---|
committer | 2015-08-24 13:22:48 +0300 | |
commit | dab741a80699f86e86c91718872a052cca9bbb25 (patch) | |
tree | 1959c4a2cea440170a5113dcb067796cb20ffb64 /external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py | |
parent | d3f26ece7d4383df0b22fe9c3cb3e695381ec737 (diff) |
Fixed dependencies of Control Plane to use external_lib sources
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py')
-rw-r--r-- | external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py b/external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py new file mode 100644 index 00000000..4a61fb55 --- /dev/null +++ b/external_libs/python/pyzmq-14.7.0/examples/pubsub/topics_sub.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python +"""Simple example of publish/subscribe illustrating topics. + +Publisher and subscriber can be started in any order, though if publisher +starts first, any messages sent before subscriber starts are lost. More than +one subscriber can listen, and they can listen to different topics. + +Topic filtering is done simply on the start of the string, e.g. listening to +'s' will catch 'sports...' and 'stocks' while listening to 'w' is enough to +catch 'weather'. +""" + +#----------------------------------------------------------------------------- +# Copyright (c) 2010 Brian Granger, Fernando Perez +# +# Distributed under the terms of the New BSD License. The full license is in +# the file COPYING.BSD, distributed as part of this software. +#----------------------------------------------------------------------------- + +import sys +import time + +import zmq +import numpy + +def main(): + if len (sys.argv) < 2: + print 'usage: subscriber <connect_to> [topic topic ...]' + sys.exit (1) + + connect_to = sys.argv[1] + topics = sys.argv[2:] + + ctx = zmq.Context() + s = ctx.socket(zmq.SUB) + s.connect(connect_to) + + # manage subscriptions + if not topics: + print "Receiving messages on ALL topics..." + s.setsockopt(zmq.SUBSCRIBE,'') + else: + print "Receiving messages on topics: %s ..." % topics + for t in topics: + s.setsockopt(zmq.SUBSCRIBE,t) + print + try: + while True: + topic, msg = s.recv_multipart() + print ' Topic: %s, msg:%s' % (topic, msg) + except KeyboardInterrupt: + pass + print "Done." + +if __name__ == "__main__": + main() |