From 99096b8c11b9a541f6350639e8735495cf90091c Mon Sep 17 00:00:00 2001 From: Devendra Date: Fri, 11 Apr 2014 14:49:43 +0530 Subject: v1 MX and async code for python, twisted, tornado --- python/tests/subscribe-test.py | 148 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100755 python/tests/subscribe-test.py (limited to 'python/tests/subscribe-test.py') diff --git a/python/tests/subscribe-test.py b/python/tests/subscribe-test.py new file mode 100755 index 0000000..0d4c65e --- /dev/null +++ b/python/tests/subscribe-test.py @@ -0,0 +1,148 @@ +## www.pubnub.com - PubNub Real-time push service in the cloud. +# coding=utf8 + +## PubNub Real-time Push APIs and Notifications Framework +## Copyright (c) 2010 Stephen Blum +## http://www.pubnub.com/ + +## ----------------------------------- +## PubNub 3.1 Real-time Push Cloud API +## ----------------------------------- + +import sys +sys.path.append('../') +import datetime +from Pubnub import Pubnub +from functools import partial +from threading import current_thread +import threading +publish_key = len(sys.argv) > 1 and sys.argv[1] or 'demo' +subscribe_key = len(sys.argv) > 2 and sys.argv[2] or 'demo' +secret_key = len(sys.argv) > 3 and sys.argv[3] or 'demo' +cipher_key = len(sys.argv) > 4 and sys.argv[4] or None +ssl_on = len(sys.argv) > 5 and bool(sys.argv[5]) or False + +## ----------------------------------------------------------------------- +## Initiate Pubnub State +## ----------------------------------------------------------------------- +#pubnub = Pubnub( publish_key, subscribe_key, secret_key, cipher_key, ssl_on ) +pubnub = Pubnub( publish_key, subscribe_key, secret_key, ssl_on ) +crazy = 'hello_world' + +current = -1 + +errors = 0 +received = 0 + +## ----------------------------------------------------------------------- +## Subscribe Example +## ----------------------------------------------------------------------- +def message_received(message): + print message + +def check_received(message): + global current + global errors + global received + print message + print current + if message <= current: + print 'ERROR' + #sys.exit() + errors += 1 + else: + received += 1 + print 'active thread count : ', threading.activeCount() + print 'errors = ' , errors + print current_thread().getName(), ' , ', 'received = ', received + + if received != message: + print '********** MISSED **************** ', message - received + current = message + + +def connected_test(ch) : + print 'Connected' , ch + +def connected(ch) : + pass + + +''' +pubnub.subscribe({ + 'channel' : 'abcd1', + 'connect' : connected, + 'callback' : message_received +}) +''' +def cb1(): + pubnub.subscribe({ + 'channel' : 'efgh1', + 'connect' : connected, + 'callback' : message_received + }) + +def cb2(): + pubnub.subscribe({ + 'channel' : 'dsm-test', + 'connect' : connected_test, + 'callback' : check_received + }) + +def cb3(): + pubnub.unsubscribe({'channel' : 'efgh1'}) + +def cb4(): + pubnub.unsubscribe({'channel' : 'abcd1'}) + +def subscribe(channel): + pubnub.subscribe({ + 'channel' : channel, + 'connect' : connected, + 'callback' : message_received + }) + + +print threading.activeCount() + + +pubnub.timeout(15,cb1) + +pubnub.timeout(30,cb2) + + +pubnub.timeout(45,cb3) + +pubnub.timeout(60,cb4) + +#''' +for x in range(1,1000): + #print x + def y(t): + subscribe('channel-' + str(t)) + + def z(t): + pubnub.unsubscribe({'channel' : 'channel-' + str(t)}) + + pubnub.timeout(x + 5, partial(y,x)) + pubnub.timeout(x + 25, partial(z, x)) + x += 10 +#''' + +''' +for x in range(1,1000): + def cb(r): print r , ' : ', threading.activeCount() + def y(t): + pubnub.publish({ + 'message' : t, + 'callback' : cb, + 'channel' : 'dsm-test' + }) + + + pubnub.timeout(x + 1, partial(y,x)) + x += 1 +''' + + +pubnub.start() -- cgit v1.2.3