Your SlideShare is downloading. ×
ProcessOne Push Platform:
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

ProcessOne Push Platform:


Published on

This is the slides from ProcessOne online tutorial on how to use ProcessOne Push Platform.

This is the slides from ProcessOne online tutorial on how to use ProcessOne Push Platform.

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. XMPP-based Push Solutions -pubsub.p1pp.netXMPP, HTTP and how to use ProcessOne PushPlatformFebruary 2012
  • 2. Violet use case: Nabaztag push architecture Initial architecture based on pure polling to check «inbox»Query to check inbox (every 5 seconds) Based on database and HTTP front servers Database with rabbits messages Broadcast HTTP Fronts service Data publication
  • 3. Violet use case: Nabaztag push architecture New push architecture on XMPP History of data Database storing the Lower latency and more reliable rabbits inbox delivery Persistant XMPP connection HTTP infrastructure could beMessages are pushed when needed broadcast halfed service ejabberd servers Publishing data
  • 4. Example: Gitlive This is our technological demo showing in browser, anonymous pubsub.
  • 5. Example: The Upik case Pubsubhubbub Hub for subscribers Could be the same hub XMPP servers Pubsubhubbub Persistant XMPP Hub connection for publisher Messages are pushed when needed Posting blog post on web server (triggers a hub "ping")
  • 6. Enabling all those cases with ProcessOnePush Platform (P1PP) Build a generic platform able to manage all those cases for our users in a standard way. Build a development community around realtime protocols. Share our XMPP pubsub expertise with developers around the world. Propose our ability to make XMPP Pubsub scale as a service. Support innovation around notification and new usage: Mobile. Web protocols: websockets.
  • 7. ProcessOne PushPlatform (P1PP) - Browser XMPP over Desktop orOverview TCP - c2s mobile client XMPP over HTTP / Websocket XMPP server (Gtalk for example) XMPP over TCP - s2s P1 Push Platform XMPP (throughout 3rd party server) or HTTP publish protocol Publisher
  • 8. Resources Main P1PP page: Developer page: Github ProcessOne: P1PP Javascript library on Github: P1PP Command-line tool on Github: XMPP protocol level documentation
  • 9. Command-line ./bin/p1.rb create test12 ./bin/p1.rb list ./bin/p1.rb delete ./bin/p1.rb subscribe test12 ./bin/p1.rb unsubscribe test12 ./bin/p1.rb listen echo ‘test’ | ./bin/p1.rb publish test12
  • 10. Javascript examples: sending sender.html <script src=></script>    <script src="../../p1pp.js"></script>    <script type="text/javascript">      $(function() {          $("#connect").click(function() {            connect($("#password").val())          })          $("#update").click(function() {            var el = Strophe.xmlElement("value");            el.appendChild(Strophe.xmlTextNode($("#newContent").val()));            P1PP.publish("ticker", null, el, function() { });            $("#newContent").val("");          })      });      function connect(password) {        P1PP.connect({          jid: "",          password: password,          debug: false, // Change to true to see messages trafic          on_strophe_event: on_state_change        });      }
  • 11. Javascript examples: Receving <script src="../../p1pp.js"></script>    <script type="text/javascript">      $(function() {        P1PP.connect({          debug: false, "// Change to true to see messages trafic          nodes: [""],          publish: on_publish,          retract: on_retract,          on_strophe_event: on_state_change          });        $("#ticker").liScroll();      });      function on_state_change(state, c){        if(state === Strophe.Status.CONNECTED || state === Strophe.Status.ATTACHED) {        }      }      function on_publish(id, value, node, timestamp) {        $("#ticker").stop();        $("#ticker").append("<li id="+id+"><span>"+$(value).text()+"</span></li>");        $("#ticker").liScrollRestart();      }      function on_retract() {      }    </script>
  • 12. Online