ProcessOne Push Platform:
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


ProcessOne Push Platform:



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.



Total Views
Views on SlideShare
Embed Views



5 Embeds 528 263 259 4 1 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

ProcessOne Push Platform: Presentation Transcript

  • 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