SlideShare a Scribd company logo
Comet, Simplified, with the Jabbify Comet
Service
       Brian Moschel
       Jupiter IT
Overview



 Why       Why        How It          Showcase
                               Demo
Comet?   Jabbify?     Works
Why Comet?
• Web 2.0 Trends
  1. Time Spent on a Page
Why Comet?
• Web 2.0 Trends
  2. Half life of a Page’s Content

Recommended for you

PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽

This document discusses progressive web apps (PWAs) and service workers. It provides an overview of service workers and how they can be used to cache web content and provide offline functionality. It also describes some common tools used with service workers like sw-toolbox, sw-precache, and sw-precache-webpack-plugin. Finally, it provides an example of how to implement a service worker in a PWA todo list application using these tools and techniques.

service workerwebpackpwa
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017

Performance matters and probably everyone hears that 1-second delay in page response can result in a 7% reduction in conversion, translating it to sales, potentially you are going to lose $2.5 million every year if your store is making $100.000 per day. Even the best-optimized back-end solution can be ruined by the bunch of JavaScript libraries or even just not optimised images. It’s really easy to forget about front-end performance or let you clients ruin it just by adding unoptimized content and tons of tracking scripts. I’ll show you a way to easily measure the Magento 2 front-end performance and how to find and eliminate bottlenecks. The talk will also cover common mistakes and show how different configuration options will affect page load and user experience.

nomadmagefront-endmagento
Повний тестздець SPA + REST
Повний тестздець SPA + RESTПовний тестздець SPA + REST
Повний тестздець SPA + REST

Андрій Шумада Sr. Software Developer at Debitoor/Ciklum Наскільки тести незамінні в девелоперському житті, як написати тести для Single Page Application і REST Api так красиво, щоб їх аж захотілось писати іншим членам вашої команди. Unit testing, end-to-end testing, integration testing, best tools, best testing libs & frameworks, best practices.

kmcncjavascriptsoftware
Why Comet?
• Demand for Comet is growing
• Desktop apps moving to the web
     • Chat
     • Real time updates
     • Don’t like to reload
• Ajax:2003::Comet:2009
What is Jabbify?
•   Comet, simplified
•   No server
•   No setup
•   JavaScript API and GET requests
Why Jabbify?

Simple to use

Scale easily

Rapid setup
Simple to use
synchronized (_continuations) {
  for(Iterator<Map.Entry <String, ArrayList<Continuation>>> iter =
_continuations.entrySet().iterator(); iter.hasNext();){
    Map.Entry<String, ArrayList<Continuation>> entry = iter.next();
    ArrayList<Continuation> continuations = entry.getValue();
    for(Continuation c : continuations){
      c.resume();
    }
  }
_continuations.clear();
}

                                  vs
Jabbify.connect({name: this.username}, this.continue_to('after_connect'))
after_connect: function(){
  Jabbify.send('vote','submit', {result: this.result})
}

Recommended for you

Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation

Service workers allow you to control how network requests from web pages are handled. They run scripts in the background to intercept and handle fetch events, allowing web applications to work offline by responding with cached responses. Before service workers, AppCache was used but had limitations. The lifecycle of a service worker involves registration, installation, activation, and controlling pages. Common uses are caching assets, providing offline functionality, and handling network responses. Challenges include debugging failed installations and limitations on credentials and CORS requests. Service workers also enable push notifications and background sync functionality.

Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbited

This document discusses using Comet techniques with Python, Django and Orbited to enable real-time data pushing to web browsers. It describes how AJAX polling, long polling and HTTP pushing work. Orbited is introduced as a framework that uses Twisted and supports STOMP, IRC and XMPP protocols to simplify building Comet applications with ready-made JavaScript clients. An example app built with Django and Orbited is also described.

 
by skam
pycon4 pycon django orbited comet
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017

Performance matters and probably everyone hears that 1-second delay in page response can result in a 7% reduction in conversion, translating it to sales, potentially you are going to lose $2.5 million every year if your store is making $100.000 per day. Even the best-optimized back-end solution can be ruined by the bunch of JavaScript libraries or even just not optimised images. It’s really easy to forget about front-end performance or let you clients ruin it just by adding unoptimized content and tons of tracking scripts. I’ll show you a way to easily measure the Magento 2 front-end performance and how to find and eliminate bottlenecks. The talk will also cover common mistakes and show how different configuration options will affect page load and user experience.

front-endmagentomagento2
Scale easily
• Scaling comet >> Scaling traditional web
  applications
• Resource intensive
• Jabbify is built to scale as usage grows
Rapid Setup
<New id=quot;cfquot; class=quot;org.mortbay.jetty.plus.naming.Resourcequot;>
  <Arg>jms/connectionFactory</Arg>
  <Arg>
    <New class=quot;org.apache.activemq.ActiveMQConnectionFactoryquot;>

<Arg>failover:(tcp://localhost:61616)?initialReconnectDelay=20&amp;maxReconnectDe
lay=900</Arg>
    </New>
  </Arg>
</New>
                                  vs

<script language=quot;javascriptquot; type=quot;text/javascriptquot; src=quot;jabbify.jsquot;></script>
Comet is complex
• Client
   – Transports (JSONP, Window.name, Flash, XHR, iframe)
• Server
   – Special server
   – Setup time
   – Learning curve
• Scaling
   – Resource consumption
   – Threading issues
Jabbify is simple
• Client to Client Comet
   – JavaScript API
      • Jabbify.send(“message”,”create”,{message: “hi there”});



• Server to Client Comet
   – GET requests
      • https://jabbify.com/message_push?key=123&type=message...

Recommended for you

Websocket
WebsocketWebsocket
Websocket

The document discusses how WebSocket provides full-duplex and bi-directional communication over a single TCP connection, addressing limitations of HTTP such as being half-duplex and requiring a new connection per request. It explains how WebSocket works by upgrading the initial HTTP connection to a WebSocket connection through a handshake process. It also describes how the Java API supports WebSocket through annotations and callback methods to handle messages, connections and errors for server and client endpoints.

websocket
Microblogging via XMPP
Microblogging via XMPPMicroblogging via XMPP
Microblogging via XMPP

The document discusses microblogging using the XMPP protocol. It provides background on XMPP, describes how it can enable microblogging in near real-time, and outlines the speaker's microblogging application built with Ruby that uses an XMPP bot, EventMachine for concurrency, Sequel as an ORM, and Ramaze as a web framework. Key features of the application include models for users, micros, and relations between them, an API for accessing data, and a plugin architecture for the XMPP bot.

xmppjabbermicroblog
Service worker - Offline Web
Service worker - Offline WebService worker - Offline Web
Service worker - Offline Web

A presentation about the Service Worker. Talk about the difference between AppCache and ServiceWorker, also show as possible with him and the idea for the future. Demo: https://github.com/brunoosilva/service-worker

frontendservice workerweb
How It Works
Demo
Take Home Points

Comet is coming

Jabbify = easy Comet
Showcase
• Jabbify Simple Chat Client
• Keyboard Demo
• Chat.unwrongest.com

Recommended for you

Being a pimp without silverlight
Being a pimp without silverlightBeing a pimp without silverlight
Being a pimp without silverlight

The document discusses a presentation by Maarten Balliauw and Kris van der Mast on ASP.NET MVC and jQuery. It provides an overview of ASP.NET MVC and its advantages over WebForms such as testability and control over HTML. It also discusses the basics of jQuery including selectors, events and AJAX functionality. It encourages attendees to learn more about these technologies from resources on their websites and blogs.

aspnet mvcjquery
Volt ruby framework
Volt ruby frameworkVolt ruby framework
Volt ruby framework

The document discusses the Volt web framework. It provides instructions on installing Volt using Git, running MongoDB and bundler, and running the Volt server. It then demonstrates various Volt features like real-time updates with websockets, debugging output, adding form elements, and running tasks explicitly on the server. Finally, it outlines Volt's features like not needing separate client/server controllers and realtime updates, and lists items on the roadmap like authentication and supporting other databases.

ruby volt framework
2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python

1) DISQUS implemented a real-time component to increase user engagement by getting new data to users quickly. 2) The architecture uses Redis for pub/sub messaging between frontend Flask servers using Gunicorn and gevent, and backend Python services that format and publish messages. 3) Testing was important to ensure the real-time system could handle DISQUS's large traffic, and metrics were used to measure and optimize performance.

pythonrealtime

More Related Content

What's hot

CasperJs Enjoy Functional Testing
CasperJs Enjoy Functional TestingCasperJs Enjoy Functional Testing
CasperJs Enjoy Functional Testing
Fabien POMEROL
 
Testing MeteorJS using CasperJS
Testing MeteorJS using CasperJSTesting MeteorJS using CasperJS
Testing MeteorJS using CasperJS
Stephan Hochhaus
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated TestingCasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
X-Team
 
PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽
Anna Su
 
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Bartek Igielski
 
Повний тестздець SPA + REST
Повний тестздець SPA + RESTПовний тестздець SPA + REST
Повний тестздець SPA + REST
Stfalcon Meetups
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
Kyle Dorman
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbited
skam
 
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Bartek Igielski
 
Websocket
WebsocketWebsocket
Websocket
Masudul Haque
 
Microblogging via XMPP
Microblogging via XMPPMicroblogging via XMPP
Microblogging via XMPP
Stoyan Zhekov
 
Service worker - Offline Web
Service worker - Offline WebService worker - Offline Web
Service worker - Offline Web
Bruno Oliveira
 
Being a pimp without silverlight
Being a pimp without silverlightBeing a pimp without silverlight
Being a pimp without silverlight
Maarten Balliauw
 
Volt ruby framework
Volt ruby frameworkVolt ruby framework
Volt ruby framework
thomasfl
 
2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python
Adam Hitchcock
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual Reality
Denis Radin
 
Finagle - an intro to rpc & a sync programming in jvm
Finagle - an intro to rpc & a sync programming in jvmFinagle - an intro to rpc & a sync programming in jvm
Finagle - an intro to rpc & a sync programming in jvm
PrasannaKumar Sathyanarayanan
 
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Fwdays
 
Building an App with jQuery and JAXER
Building an App with jQuery and JAXERBuilding an App with jQuery and JAXER
Building an App with jQuery and JAXER
Brian Moschel
 
Service worker API
Service worker APIService worker API
Service worker API
Giorgio Natili
 

What's hot (20)

CasperJs Enjoy Functional Testing
CasperJs Enjoy Functional TestingCasperJs Enjoy Functional Testing
CasperJs Enjoy Functional Testing
 
Testing MeteorJS using CasperJS
Testing MeteorJS using CasperJSTesting MeteorJS using CasperJS
Testing MeteorJS using CasperJS
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated TestingCasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
 
PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽PWA 應用 - 實現網站離線瀏覽
PWA 應用 - 實現網站離線瀏覽
 
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
Magento 2 Front-end performance tips & tricks - Nomadmage September 2017
 
Повний тестздець SPA + REST
Повний тестздець SPA + RESTПовний тестздець SPA + REST
Повний тестздець SPA + REST
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
 
Comet web applications with Python, Django & Orbited
Comet web applications with Python, Django & OrbitedComet web applications with Python, Django & Orbited
Comet web applications with Python, Django & Orbited
 
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
Magento 2 Front-end performance tips & tricks - Meet Magento Romania 2017
 
Websocket
WebsocketWebsocket
Websocket
 
Microblogging via XMPP
Microblogging via XMPPMicroblogging via XMPP
Microblogging via XMPP
 
Service worker - Offline Web
Service worker - Offline WebService worker - Offline Web
Service worker - Offline Web
 
Being a pimp without silverlight
Being a pimp without silverlightBeing a pimp without silverlight
Being a pimp without silverlight
 
Volt ruby framework
Volt ruby frameworkVolt ruby framework
Volt ruby framework
 
2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python2012 07 making disqus realtime@euro python
2012 07 making disqus realtime@euro python
 
Migrating your Web app to Virtual Reality
Migrating your Web app to Virtual RealityMigrating your Web app to Virtual Reality
Migrating your Web app to Virtual Reality
 
Finagle - an intro to rpc & a sync programming in jvm
Finagle - an intro to rpc & a sync programming in jvmFinagle - an intro to rpc & a sync programming in jvm
Finagle - an intro to rpc & a sync programming in jvm
 
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
Игорь Фесенко "Web Apps Performance & JavaScript Compilers"
 
Building an App with jQuery and JAXER
Building an App with jQuery and JAXERBuilding an App with jQuery and JAXER
Building an App with jQuery and JAXER
 
Service worker API
Service worker APIService worker API
Service worker API
 

Similar to Comet, Simplified, with Jabbify Comet Service

Comet: an Overview and a New Solution Called Jabbify
Comet: an Overview and a New Solution Called JabbifyComet: an Overview and a New Solution Called Jabbify
Comet: an Overview and a New Solution Called Jabbify
Brian Moschel
 
Going Live! with Comet
Going Live! with CometGoing Live! with Comet
Going Live! with Comet
Simon Willison
 
Ajax World Comet Talk
Ajax World Comet TalkAjax World Comet Talk
Ajax World Comet Talk
rajivmordani
 
GWT
GWTGWT
GWT
yuvalb
 
DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)
dpc
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
Joseph Scott
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Bruce Snyder
 
ICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFishICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFish
Eduardo Pelegri-Llopart
 
Google MAP API
Google MAP APIGoogle MAP API
Google MAP API
Eric Lee
 
Web 2.0 And Ajax
Web 2.0 And AjaxWeb 2.0 And Ajax
Web 2.0 And Ajax
elliando dias
 
High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)
Stoyan Stefanov
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
John Brunswick
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
John Quaglia
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
Patrick Meenan
 
Jsp
JspJsp
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
Andy McKay
 
[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practice
javablend
 
Time for Comet?
Time for Comet?Time for Comet?
Time for Comet?
Simon Willison
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Mike Subelsky
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
Jirat Kijlerdpornpailoj
 

Similar to Comet, Simplified, with Jabbify Comet Service (20)

Comet: an Overview and a New Solution Called Jabbify
Comet: an Overview and a New Solution Called JabbifyComet: an Overview and a New Solution Called Jabbify
Comet: an Overview and a New Solution Called Jabbify
 
Going Live! with Comet
Going Live! with CometGoing Live! with Comet
Going Live! with Comet
 
Ajax World Comet Talk
Ajax World Comet TalkAjax World Comet Talk
Ajax World Comet Talk
 
GWT
GWTGWT
GWT
 
DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)DPC 2007 My First Mashup (Cal Evans)
DPC 2007 My First Mashup (Cal Evans)
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
ICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFishICEfaces and JSF 2.0 on GlassFish
ICEfaces and JSF 2.0 on GlassFish
 
Google MAP API
Google MAP APIGoogle MAP API
Google MAP API
 
Web 2.0 And Ajax
Web 2.0 And AjaxWeb 2.0 And Ajax
Web 2.0 And Ajax
 
High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)High Performance Kick Ass Web Apps (JavaScript edition)
High Performance Kick Ass Web Apps (JavaScript edition)
 
Boston Computing Review - Java Server Pages
Boston Computing Review - Java Server PagesBoston Computing Review - Java Server Pages
Boston Computing Review - Java Server Pages
 
I Feel Pretty
I Feel PrettyI Feel Pretty
I Feel Pretty
 
Web performance testing
Web performance testingWeb performance testing
Web performance testing
 
Jsp
JspJsp
Jsp
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
[Muir] Seam 2 in practice
[Muir] Seam 2 in practice[Muir] Seam 2 in practice
[Muir] Seam 2 in practice
 
Time for Comet?
Time for Comet?Time for Comet?
Time for Comet?
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
 

More from Brian Moschel

A Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC LibrariesA Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC Libraries
Brian Moschel
 
FuncUnit
FuncUnitFuncUnit
FuncUnit
Brian Moschel
 
Bottom Up
Bottom UpBottom Up
Bottom Up
Brian Moschel
 
Headless Js Testing
Headless Js TestingHeadless Js Testing
Headless Js Testing
Brian Moschel
 
Web 2.0 Expo Notes
Web 2.0 Expo NotesWeb 2.0 Expo Notes
Web 2.0 Expo Notes
Brian Moschel
 
JavaScript Functions
JavaScript FunctionsJavaScript Functions
JavaScript Functions
Brian Moschel
 
Ajax3
Ajax3Ajax3
Basic inheritance in JavaScript
Basic inheritance in JavaScriptBasic inheritance in JavaScript
Basic inheritance in JavaScript
Brian Moschel
 
Things to avoid in JavaScript
Things to avoid in JavaScriptThings to avoid in JavaScript
Things to avoid in JavaScript
Brian Moschel
 
Javascript and DOM
Javascript and DOMJavascript and DOM
Javascript and DOM
Brian Moschel
 

More from Brian Moschel (10)

A Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC LibrariesA Very Biased Comparison of MVC Libraries
A Very Biased Comparison of MVC Libraries
 
FuncUnit
FuncUnitFuncUnit
FuncUnit
 
Bottom Up
Bottom UpBottom Up
Bottom Up
 
Headless Js Testing
Headless Js TestingHeadless Js Testing
Headless Js Testing
 
Web 2.0 Expo Notes
Web 2.0 Expo NotesWeb 2.0 Expo Notes
Web 2.0 Expo Notes
 
JavaScript Functions
JavaScript FunctionsJavaScript Functions
JavaScript Functions
 
Ajax3
Ajax3Ajax3
Ajax3
 
Basic inheritance in JavaScript
Basic inheritance in JavaScriptBasic inheritance in JavaScript
Basic inheritance in JavaScript
 
Things to avoid in JavaScript
Things to avoid in JavaScriptThings to avoid in JavaScript
Things to avoid in JavaScript
 
Javascript and DOM
Javascript and DOMJavascript and DOM
Javascript and DOM
 

Recently uploaded

7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 

Recently uploaded (20)

7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 

Comet, Simplified, with Jabbify Comet Service

  • 1. Comet, Simplified, with the Jabbify Comet Service Brian Moschel Jupiter IT
  • 2. Overview Why Why How It Showcase Demo Comet? Jabbify? Works
  • 3. Why Comet? • Web 2.0 Trends 1. Time Spent on a Page
  • 4. Why Comet? • Web 2.0 Trends 2. Half life of a Page’s Content
  • 5. Why Comet? • Demand for Comet is growing • Desktop apps moving to the web • Chat • Real time updates • Don’t like to reload • Ajax:2003::Comet:2009
  • 6. What is Jabbify? • Comet, simplified • No server • No setup • JavaScript API and GET requests
  • 7. Why Jabbify? Simple to use Scale easily Rapid setup
  • 8. Simple to use synchronized (_continuations) { for(Iterator<Map.Entry <String, ArrayList<Continuation>>> iter = _continuations.entrySet().iterator(); iter.hasNext();){ Map.Entry<String, ArrayList<Continuation>> entry = iter.next(); ArrayList<Continuation> continuations = entry.getValue(); for(Continuation c : continuations){ c.resume(); } } _continuations.clear(); } vs Jabbify.connect({name: this.username}, this.continue_to('after_connect')) after_connect: function(){ Jabbify.send('vote','submit', {result: this.result}) }
  • 9. Scale easily • Scaling comet >> Scaling traditional web applications • Resource intensive • Jabbify is built to scale as usage grows
  • 10. Rapid Setup <New id=quot;cfquot; class=quot;org.mortbay.jetty.plus.naming.Resourcequot;> <Arg>jms/connectionFactory</Arg> <Arg> <New class=quot;org.apache.activemq.ActiveMQConnectionFactoryquot;> <Arg>failover:(tcp://localhost:61616)?initialReconnectDelay=20&amp;maxReconnectDe lay=900</Arg> </New> </Arg> </New> vs <script language=quot;javascriptquot; type=quot;text/javascriptquot; src=quot;jabbify.jsquot;></script>
  • 11. Comet is complex • Client – Transports (JSONP, Window.name, Flash, XHR, iframe) • Server – Special server – Setup time – Learning curve • Scaling – Resource consumption – Threading issues
  • 12. Jabbify is simple • Client to Client Comet – JavaScript API • Jabbify.send(“message”,”create”,{message: “hi there”}); • Server to Client Comet – GET requests • https://jabbify.com/message_push?key=123&type=message...
  • 14. Demo
  • 15. Take Home Points Comet is coming Jabbify = easy Comet
  • 16. Showcase • Jabbify Simple Chat Client • Keyboard Demo • Chat.unwrongest.com