diff options
Diffstat (limited to 'python-tornado/tests/subscribe-test.py')
| -rwxr-xr-x | python-tornado/tests/subscribe-test.py | 148 | 
1 files changed, 148 insertions, 0 deletions
| diff --git a/python-tornado/tests/subscribe-test.py b/python-tornado/tests/subscribe-test.py new file mode 100755 index 0000000..0d4c65e --- /dev/null +++ b/python-tornado/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() | 
