Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

The PubNub Network makes Real-time easy with a Simple Communications API. Two Functions: Send/Receive (Publish/Subscribe). We provide a web-service API for businesses to build scalable Data Push communication apps on Mobile, Tablet and Web. Bidirectional JSON. @PubNub - IRC #pubnub @ freenode.net

branch: master
Octocat-spinner-32 android adding redirect February 19, 2013
Octocat-spinner-32 app-showcase moved examples to new JS Repo. March 01, 2013
Octocat-spinner-32 arduino moving repo March 04, 2013
Octocat-spinner-32 blackberry removing bb from main repo February 20, 2013
Octocat-spinner-32 c-libevent migrating April 17, 2013
Octocat-spinner-32 clojure Create LICENSE July 16, 2013
Octocat-spinner-32 cocoa migrating cocoa February 28, 2013
Octocat-spinner-32 coldfusion Create LICENSE July 16, 2013
Octocat-spinner-32 construct2 Create LICENSE July 16, 2013
Octocat-spinner-32 csharp-iis moving repo March 20, 2013
Octocat-spinner-32 csharp moving repo March 20, 2013
Octocat-spinner-32 erlang Create LICENSE July 16, 2013
Octocat-spinner-32 flash moving flash February 26, 2013
Octocat-spinner-32 games fixed multi-touch demo. December 18, 2013
Octocat-spinner-32 google-app-engine updated Google App Engine python API with imporved JSON import provid… November 10, 2011
Octocat-spinner-32 gwt removing gwt from main repo February 20, 2013
Octocat-spinner-32 j2me removing j2me from main repo February 20, 2013
Octocat-spinner-32 java removing java from main repo February 20, 2013
Octocat-spinner-32 javascript-modern migrating April 17, 2013
Octocat-spinner-32 javascript-webos migrating April 17, 2013
Octocat-spinner-32 javascript moved javascript repository to new separate repository. February 24, 2013
Octocat-spinner-32 lua-corona deleting lua-corona October 08, 2013
Octocat-spinner-32 lua-moai moving moai October 08, 2013
Octocat-spinner-32 monkey Create LICENSE July 16, 2013
Octocat-spinner-32 mono-for-android moving repo March 20, 2013
Octocat-spinner-32 mono-for-linux moving repo March 20, 2013
Octocat-spinner-32 mono-for-mac moving repo March 20, 2013
Octocat-spinner-32 monotouch moving repo March 20, 2013
Octocat-spinner-32 nodejs migrating April 17, 2013
Octocat-spinner-32 objective-c redirect readme February 28, 2013
Octocat-spinner-32 opa Create LICENSE July 16, 2013
Octocat-spinner-32 perl5 Create LICENSE July 16, 2013
Octocat-spinner-32 perl6 Create LICENSE July 16, 2013
Octocat-spinner-32 phonegap migrating April 17, 2013
Octocat-spinner-32 php-rackspace new PHP client supports Rackspace March 20, 2013
Octocat-spinner-32 php moving repo March 20, 2013
Octocat-spinner-32 python-tornado moving to new repo December 06, 2013
Octocat-spinner-32 python-twisted adding new RM December 06, 2013
Octocat-spinner-32 python pointing to new repo December 06, 2013
Octocat-spinner-32 qooxdo Create LICENSE July 16, 2013
Octocat-spinner-32 ruby-rhomobile Create LICENSE July 16, 2013
Octocat-spinner-32 ruby Update README.md March 27, 2014
Octocat-spinner-32 sencha migrating April 17, 2013
Octocat-spinner-32 silverlight moving repo March 20, 2013
Octocat-spinner-32 sinatra Create LICENSE July 16, 2013
Octocat-spinner-32 socket.io migrating April 17, 2013
Octocat-spinner-32 streams changed location of Stalker Code from streams dir to app-showcase dir. October 18, 2011
Octocat-spinner-32 titanium migrating April 17, 2013
Octocat-spinner-32 unity3d redirect May 15, 2013
Octocat-spinner-32 websocket Update README.md March 07, 2014
Octocat-spinner-32 windows-phone-7 mv repo March 21, 2013
Octocat-spinner-32 .gitignore added custom uuid feature January 16, 2013
Octocat-spinner-32 .gitignore.orig merging CL-243 November 20, 2012
Octocat-spinner-32 .project CL-108:Add Presence 3.2 to Android August 04, 2012
Octocat-spinner-32 .pydevproject CL-108:Add Presence 3.2 to Android August 04, 2012
Octocat-spinner-32 HTML5.md Update HTML5.md May 14, 2013
Octocat-spinner-32 LICENSE Update LICENSE March 27, 2013
Octocat-spinner-32 README.md Update README.md March 25, 2014
Octocat-spinner-32 presence.md Update presence.md December 20, 2012
README.md

Connecting everyone on Earth in < 0.25s !

PubNub is a cross-platform client-to-client (1:1 and 1:many) push service in the cloud, capable of broadcasting real-time messages to millions of web and mobile clients simultaneously, in less than a quarter second!

Optimized for both web and mobile, our scalable, global network of redundant data centers provides lightning-fast, reliable message delivery. We're up to 100 messages/second faster than possible with WebSockets alone, and cross-platform compatibility across all phones, tablets, browsers, programming languages, and APIs is always guaranteed!

Support and Issues

Please email us at support@pubnub.com if you have any questions or issues with the client SDKs. Alternatively, you can open an issue in the Github repo of the client you have the concern about.

Supported Languages and Frameworks

The current list of supported languages and frameworks can be found on our github page.

Contact Us

Contact information for support, sales, and general purpose inquiries can found at http://www.pubnub.com/contact-us.

Demo and Webcast Links

Vimeo: https://vimeo.com/pubnub
YouTube: http://www.youtube.com/playlist?p=PLF0BA2B6DAAF4FBBF
Showcase: http://www.pubnub.com/blog
Interview: http://techzinglive.com/?p=227

Using Encryption with PubNub

For higher security applications, PubNub provides SSL and AES-based encryption features to help safeguard your data. Additional information and higher-level overviews of Cross-Platform AES Symmetric Key Encryption in general can be found in our blog post. A lower level diagram which details the PubNub encryption-communication flow can be found here.

HTTPS (SSL) 2048-bit Encryption

HTTPS is recommended for the highest level of security for REST requests to PubNub. Using REST over HTTPS is not required – however, for secure communication, you should make sure the client or REST toolkit you're using is configured to use SSL. The PubNub Cloud service will continue to support both HTTP and HTTPS.

AES Encryption

To enable AES encryption, instantiate a PubNub instance with the presence of the optional cipher_key attribute. The instance will use the value of the cipher_key attribute as the cipher key.

Message Signing with HMAC/SHA256

If the client is publishing, you must also include the secret_key attribute when instantiating the PubNub instance. If the client will only be subscribing, you do not need to include the secret_key attribute. The instance will use the value of the secret_key as the key to sign the message.

Secure Key Exchange

The exchange of the cipher key (and if the client is publishing, the secret key) must occur using a secure communication system, external to PubNub, in order to maintain secrecy of the keys.

For an example of using encryption with the PubNub JavaScript API, check out the PubNub Javascript Cryptography Demo page. The demo shows usage of the Cipher Key + SSL at the same time. There is not exchange however with a central authority server, which is a recommended step for distributing security keys. This example diagram with illustrate the recommended Central Authority Server model for proper Security Key Exchange.

REST API Considerations

In addition to platform-specific APIs, PubNub also supports a REST API.

Mandatory Headers

When using the REST API, it is mandatory to pass the following HTTP headers to the PubNub server for each request:

V: Version-Number
User-Agent: NAME-OF-THE-CLIENT-INTERFACE
Accept: */*

Example Headers

V: 3.1
User-Agent: PHP
Accept: */*

Selecting a User-agent

Use one of the following User-Agents, based on your client platform, when making a REST-based request: *PHP, JavaScript, Node.JS, Ruby, Ruby-Rhomobile, Python, Python-Twisted, Python-Tornado, C-LibEV, C-LibEvent, C-Qt, VB, C#, Java, Java-Android, Erlang, Titanium, Corona, C-Arduino, C-Unity, C#-Mono, Lua, Obj-C-iOS, C#-WP7, Cocoa, Perl5

Something went wrong with that request. Please try again.