aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevendra2015-06-05 23:31:51 +0530
committerDevendra2015-06-05 23:31:51 +0530
commit19019a3466917e8ab2d8fd17df471aa34a07df1b (patch)
tree144406f7c84ccfbbfe3cdccb1bc0c7b8d085dfea
parent09df6a7abe0d1753fd710c5291e87f80e7fda2b8 (diff)
downloadpubnub-python-19019a3466917e8ab2d8fd17df471aa34a07df1b.tar.bz2
pam demo
-rw-r--r--python/examples/pam_demo/demo.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/python/examples/pam_demo/demo.py b/python/examples/pam_demo/demo.py
new file mode 100644
index 0000000..e00914d
--- /dev/null
+++ b/python/examples/pam_demo/demo.py
@@ -0,0 +1,74 @@
+
+from gevent.monkey import patch_all
+patch_all()
+
+import sys
+from Pubnub import Pubnub
+import random
+import json
+
+rand = str(random.randint(1,99999999))
+
+def get_unique(s):
+ return 'str-' + rand + '-' + s
+
+# public channel
+channel_public = get_unique("channel_public")
+
+# server auth key
+server_auth_token = get_unique("server_auth_token")
+
+#client auth key
+client_auth_token = get_unique("client_auth_token")
+
+#client uuid
+client_uuid = get_unique("client_uuid")
+
+#server uuid
+server_uuid = get_unique("server_uuid")
+
+
+#init server object
+server = Pubnub(publish_key="pam", subscribe_key="pam", secret_key="pam", auth_key=server_auth_token, uuid=server_uuid)
+
+#init client object
+client = Pubnub(publish_key="pam", subscribe_key="pam", auth_key=client_auth_token, uuid=client_uuid)
+
+# Grant permission to server auth keys
+print(server.grant(channel=channel_public, auth_key=server_auth_token, read=True, write=True))
+print(server.grant(channel=channel_public + '-pnpres', auth_key=server_auth_token, read=True, write=True))
+
+# Grant permission to client auth keys
+print(server.grant(channel=channel_public, auth_key=client_auth_token, read=True, write=False))
+print(server.grant(channel=channel_public + '-pnpres', auth_key=client_auth_token, read=True, write=False))
+
+
+
+def _server_callback(message, channel):
+ print(message)
+
+def _error_callback(error):
+ print(error)
+
+#server subscribes to public channel
+server.subscribe(channels=channel_public, callback=_server_callback, error=_error_callback)
+
+
+
+def _server_presence_callback(message, channel):
+ print message
+ if 'action' in message:
+ if message['action'] == 'join' and message['uuid'] == client_uuid:
+ print "Only I can see that client with UUID " + message['uuid'] + " has a state of " + json.dumps(message['data'])
+
+# server subscribes to presence events on public channel
+server.presence(channel=channel_public, callback=_server_presence_callback, error=_error_callback)
+
+
+
+
+def _client_callback(channel, message):
+ print(message)
+
+# client subscribes to public channel
+client.subscribe(channels=channel_public, state={ "myKey" : get_unique("foo")}, callback=_client_callback, error=_error_callback)