summaryrefslogtreecommitdiffstats
path: root/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py
diff options
context:
space:
mode:
Diffstat (limited to 'external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py')
-rw-r--r--external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py b/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py
new file mode 100644
index 00000000..ae065b35
--- /dev/null
+++ b/external_libs/python/pyzmq-14.7.0/examples/gevent/simple.py
@@ -0,0 +1,37 @@
+from gevent import spawn, spawn_later
+import zmq.green as zmq
+
+# server
+print zmq.Context
+ctx = zmq.Context()
+sock = ctx.socket(zmq.PUSH)
+sock.bind('ipc:///tmp/zmqtest')
+
+spawn(sock.send_pyobj, ('this', 'is', 'a', 'python', 'tuple'))
+spawn_later(1, sock.send_pyobj, {'hi': 1234})
+spawn_later(2, sock.send_pyobj, ({'this': ['is a more complicated object', ':)']}, 42, 42, 42))
+spawn_later(3, sock.send_pyobj, 'foobar')
+spawn_later(4, sock.send_pyobj, 'quit')
+
+
+# client
+ctx = zmq.Context() # create a new context to kick the wheels
+sock = ctx.socket(zmq.PULL)
+sock.connect('ipc:///tmp/zmqtest')
+
+def get_objs(sock):
+ while True:
+ o = sock.recv_pyobj()
+ print 'received python object:', o
+ if o == 'quit':
+ print 'exiting.'
+ break
+
+def print_every(s, t=None):
+ print s
+ if t:
+ spawn_later(t, print_every, s, t)
+
+print_every('printing every half second', 0.5)
+spawn(get_objs, sock).join()
+