SlideShare a Scribd company logo
Writing Portable WebSocket in Java

         Jeanfrancois Arcand

         twitter.com/jfarcand
Pardon?

• Worked 10 years for Sun Microsystems
 •   Active Commiter on Tomcat 4/5
 •   Active Commiter GlassFish 1/2/3
     •   Glassfish v3 extensible container kernel
     •   Performance/Scalability
 •   Creator of the Grizzly NIO Framework
• Creator of the AHC (AsyncHttpClient)
  library
• Creator of Atmosphere
Atmosphere

 Apache 2      Github ~470
               « followers »
                               Client +
 Supported                     server
    ~25
frameworks                     Scala, Groovy,
                                JRuby, Java
 Since 2008
                20 000 downloads per
                       months
1.0.0.beta3
Atmosphere

 Apache 2      Github ~450
               « followers »
                               Client +
 Supported    EXTREMEL
                               server
    ~25        Y ACTIVE
frameworks        !!!          Scala, Groovy,
                                JRuby, Java
 Since2008
                20 000 downloads per
                       months
1.0.0.beta2
Today’s Presentation
     WebSocket
Today’s Presentation
             WebSocket

Definition
Today’s Presentation
             WebSocket

Definition               Free for
                           all!!!
Today’s Presentation
             WebSocket

C’est quoi
Definition               Free for
                         Free for
                           all!!!
                            all!

             Atmospher
                 e
Today’s Presentation
                WebSocket

   Definition               Free for
                              all!

                Atmospher
                    e
Concepts
Today’s Presentation
                WebSocket

   C’est quoi
   Definition               Free for
                              all!!!
                              all!

                Atmospher
                    e
Concepts                    Demo
WebSockets

is a web technology providing for
     bi-directional, full-duplex
   communications channels over a
      single TCP connection. The
        WebSocket API is being
 standardized by the W3C, and the
     WebSocket protocol has been
  standardized by the IETF as RFC
                 6455
Before (Long-Polling)

           Request


Browse                       Server
   r
Before (Long-Polling)

           Request


Browse                       Server
   r
Before (Long-Polling)

           Request


Browse                       Server
   r
          Response
Oups!!


         Request

Browse        None   Server
   r
Oups!

         Request


Browse             Server
   r
                   Zzzz
Better!


         Request

Browse                  Server
   r

                      Cache
Better!

         Request


Browse               Server
   r

                   Cache
Pushing the Protocol (HTTP
          Streaming)
           Request


Browse                   Server
   r
Pushing the Protocol (HTTP
          Streaming)
           Request


Browse                   Server
   r
Pushing the Protocol (HTTP
          Streaming)
           Request


Browse                   Server
   r
          Response
Pushing the Protocol (HTTP
          Streaming)
           Request


Browse                   Server
   r
          Response

          Response
Oups!!

            Request


Browse                 Server
   r
  Hell!!!   Response

            Response
Pushing the Protocol (HTTP
           Streaming)
            Request


Browse                    Server
   r
  Hell!!!
   Hack     Response

            Response
Oups!!!

         Request


Browse              Server
   r
         Response
            Proxy
         Response
Better

         Request


Browse                Server
   r
         Response Cache

         Response
Better

          Request


Browse                 Server
   r
         Response Cache
         « HeartBeat
         Response
              »
Better: Server Side Events (SSE)

            Request


Browse                    Server
   r
           Response

           Response
Oups!!!

         Request


Browse              Server
   r
         Response
            Proxy
         Response
Better

          Request


Browse                 Server
   r
         Response Cache
         « HeartBeat
         Response
              »
WebSockets

          Hanshake


Browse                Server
   r
WebSockets

          Hanshake


Browse                Server
   r
            OK
WebSockets

          Request


Browse                Server
   r
WebSockets

          Request


Browse                Server
   r
WebSockets




Browse                Server
   r
         Response
WebSockets

          Request


Browse                Server
   r
WebSockets

          Request

           Request
Browse                Server
   r
WebSockets

          Request

           Request
Browse                Server
   r
WebSockets




Browse                Server
   r
         Response

         Response
Anytime




Browse              Server
   r
         Response
Life is good, lalalalalala




Browse                        Server
   r
            Response
Oups!!




Browse              Server
   r
         Response
            Proxy
Better!




Browse                Server
   r
         Response Cache
First Request
T 127.0.0.1:65062 -> 127.0.0.1:8080 [AP]
GET / HTTP/1.1.
Upgrade: websocket.
Connection: Upgrade.
Host: 127.0.0.1:8080.
Origin: http://127.0.0.1:8080.
Sec-WebSocket-Key: Tz9qdt3lmte6Slf+GvpRqQ==.
Sec-WebSocket-Version: 13.
Sec-WebSocket-Extensions: x-webkit-deflate-
frame.
Response
T 127.0.0.1:8080 -> 127.0.0.1:51292 [AP]
HTTP/1.1 101 Switching Protocols.
Upgrade: WebSocket.
Connection: Upgrade.
Sec-WebSocket-Accept:
HVXA7SqH5uYeN6aD9tZ0JQbfTJA=.
Life is good, lalalalalala
T 127.0.0.1:8080 -> 127.0.0.1:51292 [AP]
HTTP/1.1 101 Switching Protocols.
Upgrade: WebSocket.
Connection: Upgrade.
Sec-WebSocket-Accept:
HVXA7SqH5uYeN6aD9tZ0JQbfTJA=.
OUPS!!!
T 127.0.0.1:8080 -> 127.0.0.1:65064 [AP]
HTTP/1.1 501 Not Implemented.
Server: Apache-Coyote/1.1.
X-Atmosphere-error: Websocket protocol not
supported.
Transfer-Encoding: chunked.
Date: Fri, 15 Jun 2012 10:06:30 GMT.
Connection: close.
.
WebSocket API – Standard
           JavaScript
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { …};
websocket.onclose = function(evt) { …};
websocket.onmessage = function(evt) { …};
websocket.onerror = function(evt) { …};


webSocket.send(…)
WebSocket API – Java

Jetty 7, GlassFish 3.1, Netty 3, Tomcat
7.0.27, Resin 4, JBoss Plugin


JSR 356:
http://jcp.org/en/jsr/detail?id=356


AHC (Client -> De facto)
http://github.com/sonatype/async-http-
client
Life is good,
 lalalalalala
OUPS!!!
Ready?
Safari             Tomcat
                      7
Firefox            Jetty7

                    Jetty8
Chrome

                   GlassFis
Opera                h3.
                   GlassFis
  IE                  h
                     312
Free for all
Safari                   Tomcat
                            7
Firefox                  Jetty7

                          Jetty8
Chrome

                         GlassFis
Opera                      h3.
                         GlassFis
  IE                        h
                           312
Free for all
Safari                   Tomcat
                            7
Firefox                  Jetty7

          Imdat!!         Jetty8
Chrome

                         GlassFis
Opera                      h3.
                         GlassFis
  IE                        h
                           312
Free for all
Safari                         Tomcat
                                  7
          Streamin             Jetty7
Firefox
              g
                Imdat!!         Jetty8
Chrome

                               GlassFis
Opera                            h3.
                               GlassFis
  IE                              h
                                 312
Free for all
Safari                        Tomcat
                                 7
          Streamin            Jetty7
Firefox
              g
                Imdat!!SSE     Jetty8
Chrome

                              GlassFis
Opera                           h3.
                              GlassFis
  IE                             h
                                312
Free for all
Safari                            Tomcat
                                     7
          Streamin                Jetty7
Firefox
              g
                Imdat!!SSE        Jetty8
Chrome

                                GlassFis
Opera                         JSONP
                                  h3.
                                 GlassFis
  IE                                h
                                   312
Free for all
Safari                                 Tomcat
                                          7
           Streamin                    Jetty7
Firefox
               g
                 Imdat!!SSE            Jetty8
Chrome

                                     GlassFis
Opera
           Long                    JSONP
                                       h3.
                                      GlassFis
  IE      Polling                        h
                                        312
Safari                 Tomcat
                          7
Firefox                Jetty7
          Atmosphere
Chrome       to the     Jetty8

           rescue!!!   GlassFis
Opera                    h3.
                       GlassFis
  IE                      h
                         312
Atmosphere -WebSockets

Safari                                        Tomcat
                                                 7
                                              Jetty7




                             Atmosphere API
Firefox
             atmosphere.js
                                               Jetty8
Chrome

                                              GlassFis
Opera                                           h3.
                                              GlassFis
  IE                                             h
                                                312
Atmosphere - HTML5 Server Side
               Events
Safari                                     Tomcat
                                              7
                                           Jetty7




                          Atmosphere API
Firefox
          atmosphere.js
                                           Servlet
Chrome
                                             3
                                           WebLogi
Opera                                        c
                                           GlassFis
  IE                                          h
                                             312
Atmosphere Long-Polling/HTTP
                Streaming
Safari                                        JBoss

                                              Jetty7




                            Atmosphere API
Firefox
            atmosphere.js
                                             Servlet
Chrome
                                               3
                                             WebLogi
Opera                                          c.
                                             GlassFis
  IE                                            h
Atmosphere

Safari                                                   JBoss

                                                         Jetty7




                                       Atmosphere API
Firefox
          atmosphere.js
              Same
Chrome    API, transport                                Servlet
                                                          3
          independent!!                                 WebLogi
Opera                                                     c.
                                                        GlassFis
  IE                                                       h
Socket.IO, GWT, Wicket, JSF, etc.

Safari                                     JBoss

                                           Jetty7




                         Atmosphere API
Firefox
          Socket.IO
                                          Servlet
Chrome
                                            3
                                          WebLogi
Opera                                       c.
                                          GlassFis
  IE                                         h
PORTABLE!!!!!

Safari                                             JBoss

                                                   Jetty7




                                 Atmosphere API
Firefox
          Socket.IO
                      PORTABLE                    Servlet
Chrome
                                                    3
                                                  WebLogi
Opera                                               c.
                                                  GlassFis
  IE                                                 h
Big Big Big Mistake

• Frameworkthat support ONLY
 WebSockets



    Going into
   Production?
  IMPOSSIBLE
Atmosphere
Definition

• Suspend: open a   channel
• Resume: close a   channel
• Broadcast: push   message to one
 or more channel
Components

Atmosphere.js



                Interceptor(s)


                            Handler(s)
Components

Atmosphere.js



   Javascript   Interceptor(s)
     client

                            Handler(s)
Components

Atmosphere.js



                Interceptor(s)

       Intercepts/
          Filters           Handler(s)
Components

Atmosphere.js



                            Application
                Interceptor(s)
                               s Logic


                            Handler(s)
Components

Atmosphere.js
                             Your Servlet



                Interceptor(s)


                          ServletHandler
Components
                          Your Servlet
Atmosphere.js
                            Based
                          Framework

                Interceptor(s)


                          ServletHandler
Components

Atmosphere.js
                ws           Your Servlet



                Interceptor(s)


                          ServletHandler
Components

Atmosphere.js
                ws           Your Servlet
                  ss
                   e
                Interceptor(s)


                          ServletHandler
Components

Atmosphere.js
                ws           Your Servlet
                  ss
                   http
                   e
                Interceptor(s)


                          ServletHandler
Request

Browse
   r


Browse             Server
   r


Browse
   r
Request

Browse
   r


Browse             Server
   r


Browse
   r
Suspend

Browse
   r


Browse             Server
   r


Browse
   r
Suspend

Browse
   r

                   S
Browse              Server
   r


Browse
   r
Suspend

Browse
   r

                   S
Browse              Server
   r


Browse
   r
Suspend

Browse
   r

                   S
Browse              Server
   r


Browse
   r
Broadcast

Browse
   r
                              B
                     S
Browse               Server
   r


Browse
   r
Broadcast

Browse
   r
                              B
                     S
Browse               Server
   r


Browse
   r
Resume

Browse
   r
                               B

Browse                Server
   r              R


Browse
   r
Resume

Browse
   r
                               B

Browse                Server
                  S
   r


Browse
   r
Broadcaster

• Default:    in-memory
• Cloud
 •   RedisBroadcaster
 •   JMSBroadcaster
 •   XMPPBroadcaster
 •   HazelcastBroadcaster
 •   JGroupsBroascaster
• Multi-Threads,        Async I/O par
 default
Broadcaster Cloud

Browse
   r                         S
                             Server

Browse
   r


Browse                   S Server
   r
Broadcaster Cloud

Browse
   r                         S
                             Server

Browse
   r


Browse                   S Server
   r
Broadcaster Cloud

Browse                                B
   r                         S
                             Server

Browse
   r


Browse                   S Server
   r
Broadcaster Cloud

Browse                             B
   r                         Server


Browse
   r


Browse
   r                         Server
Broadcaster Cloud

Browse
   r                         Server


Browse
   r
                                      B
Browse
   r                         Server
Broadcaster Cloud

Browse
   r                         Server


Browse
   r


Browse
   r                         Server
Atmosphere API

• WebSocketHandler
 •   Only WebSocket (WARNING)!
• AtmosphereHandler
 •   All transport
• Jersey   Resource
 •   All transport
• Meteor
 •   All transport
WebSocket Sub Protocol

• WebSocketProtocol
 Define your own websocket protocol


• SimpleHttpProtocol
  WebSocket’s message mapped to HTTP
  POST, avec read/write asynchrone.
• SwaggerSocket:REST over
 WebSockets -> Powerful Protocol
Let’s have some fun
Single Client to Rule Them All




https://github.com/Atmosphere/atmos
phere/blob/master/samples/chat/src/m
 ain/webapp/jquery/application.js#L1
WebSocket


https://github.com/Atmosphere/atmos
phere/blob/master/samples/websocke
                  t-
chat/src/main/java/org/atmosphere/sa
mples/chat/WebSocketChat.java#L33
WebSocket, SSE, long-polling



https://github.com/Atmosphere/atmos
phere/blob/master/samples/chat/src/m
ain/java/org/atmosphere/samples/chat
 /ChatAtmosphereHandler.java#L33
Socket IO


https://github.com/Atmosphere/atmos
phere/blob/master/samples/socketio-
chat/src/main/java/org/atmosphere/sa
mples/chat/SocketIOChatAtmosphere
            Handler.java#L34
Jersey


https://github.com/Atmosphere/atmos
phere/blob/master/samples/sse-rest-
chat/src/main/java/org/atmosphere/sa
mples/chat/jersey/ResourceChat.java
                 #L32
JAXRS 2


https://github.com/Atmosphere/atmos
 phere/blob/master/samples/jaxrs2-
chat/src/main/java/org/atmosphere/sa
mples/chat/jaxrs2/Jaxrs2Chat.java#L3
                  4
SwaggerSocket

• REST over WebSocket
• JSON Based
• Simple
• Works with HTTP
• Multi-Request/Response
Conclusion

       Join the
      Revolution

It’s open source, it’s free to
jumps in!!
twitter.com/jfarcand
      twitter.com/atmo_framework
       twitter.com/swaggersocket

http://github.com/Atmosphere/atmosphere
http://github.com/wordnik/swaggersocket

More Related Content

What's hot

Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya Grigorik
Ilya Grigorik
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
Ilya Grigorik
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014
Nenad Pecanac
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
Jim Jagielski
 
Building Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSocketsBuilding Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSockets
Sergi Almar i Graupera
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
David Lindkvist
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
Jim Jagielski
 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability Options
Fabio Akita
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSocketsRoland M
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
Sergi Almar i Graupera
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matterTomas Doran
 
HTML5 WebSocket for the Real-Time Web and the Internet of Things
HTML5 WebSocket for the Real-Time Weband the Internet of ThingsHTML5 WebSocket for the Real-Time Weband the Internet of Things
HTML5 WebSocket for the Real-Time Web and the Internet of Things
Peter Moskovits
 
Realtime web application with java
Realtime web application with javaRealtime web application with java
Realtime web application with java
JeongHun Byeon
 
Web sockets in Java
Web sockets in JavaWeb sockets in Java
Web sockets in Java
Pance Cavkovski
 
Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
Tatsuhiko Miyagawa
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
Fabio Tiriticco
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
Fastly
 

What's hot (20)

Event Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya GrigorikEvent Driven Architecture - MeshU - Ilya Grigorik
Event Driven Architecture - MeshU - Ilya Grigorik
 
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9No callbacks, No Threads - Cooperative web servers in Ruby 1.9
No callbacks, No Threads - Cooperative web servers in Ruby 1.9
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014
 
ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4ApacheCon 2014 - What's New in Apache httpd 2.4
ApacheCon 2014 - What's New in Apache httpd 2.4
 
Building Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSocketsBuilding Real-Time Applications with Android and WebSockets
Building Real-Time Applications with Android and WebSockets
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
The HTML5 WebSocket API
The HTML5 WebSocket APIThe HTML5 WebSocket API
The HTML5 WebSocket API
 
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse ProxyApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
ApacheConNA 2015: Apache httpd 2.4 Reverse Proxy
 
Toster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability OptionsToster - Understanding the Rails Web Model and Scalability Options
Toster - Understanding the Rails Web Model and Scalability Options
 
Pushing the web — WebSockets
Pushing the web — WebSocketsPushing the web — WebSockets
Pushing the web — WebSockets
 
Plack at YAPC::NA 2010
Plack at YAPC::NA 2010Plack at YAPC::NA 2010
Plack at YAPC::NA 2010
 
WebSockets with Spring 4
WebSockets with Spring 4WebSockets with Spring 4
WebSockets with Spring 4
 
Plack at OSCON 2010
Plack at OSCON 2010Plack at OSCON 2010
Plack at OSCON 2010
 
Web frameworks don't matter
Web frameworks don't matterWeb frameworks don't matter
Web frameworks don't matter
 
HTML5 WebSocket for the Real-Time Web and the Internet of Things
HTML5 WebSocket for the Real-Time Weband the Internet of ThingsHTML5 WebSocket for the Real-Time Weband the Internet of Things
HTML5 WebSocket for the Real-Time Web and the Internet of Things
 
Realtime web application with java
Realtime web application with javaRealtime web application with java
Realtime web application with java
 
Web sockets in Java
Web sockets in JavaWeb sockets in Java
Web sockets in Java
 
Intro to PSGI and Plack
Intro to PSGI and PlackIntro to PSGI and Plack
Intro to PSGI and Plack
 
WebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! FrameworkWebSockets wiith Scala and Play! Framework
WebSockets wiith Scala and Play! Framework
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
 

Similar to Writing Portable WebSockets in Java

Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
Fabio Akita
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
Arun Gupta
 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options
.toster
 
Ring: Web Apps in Idiomatic Clojure
Ring: Web Apps in Idiomatic ClojureRing: Web Apps in Idiomatic Clojure
Ring: Web Apps in Idiomatic ClojureMark McGranaghan
 
The Real-Time Web (and Other Buzzwords)
The Real-Time Web (and Other Buzzwords)The Real-Time Web (and Other Buzzwords)
The Real-Time Web (and Other Buzzwords)err
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
leo lapworth
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariJoseph Scott
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpinrajivmordani
 
Websocket shanon
Websocket shanonWebsocket shanon
Websocket shanon
Takafumi Ikeda
 
Web sockets - Pentesting
Web sockets - Pentesting Web sockets - Pentesting
Web sockets - Pentesting
Vandana Verma
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
Fabio Akita
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
DNAD
 
Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)
Steve McMahon
 
SaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
SaltStack's NetAPI at Photobucket - Denver SaltStack MeetupSaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
SaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
Jon Henry
 
Browser War 2: Standards strikes back
Browser War 2: Standards strikes backBrowser War 2: Standards strikes back
Browser War 2: Standards strikes backZi Bin Cheah
 
Real time web
Real time webReal time web
Real time web
Dingding Ye
 
Web-Socket
Web-SocketWeb-Socket

Similar to Writing Portable WebSockets in Java (20)

Fisl - Deployment
Fisl - DeploymentFisl - Deployment
Fisl - Deployment
 
Deployment de Rails
Deployment de RailsDeployment de Rails
Deployment de Rails
 
Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014Nuts and Bolts of WebSocket Devoxx 2014
Nuts and Bolts of WebSocket Devoxx 2014
 
Understanding the Rails web model and scalability options
Understanding the Rails web model and scalability optionsUnderstanding the Rails web model and scalability options
Understanding the Rails web model and scalability options
 
Ws
WsWs
Ws
 
NullMQ @ PDX
NullMQ @ PDXNullMQ @ PDX
NullMQ @ PDX
 
Ring: Web Apps in Idiomatic Clojure
Ring: Web Apps in Idiomatic ClojureRing: Web Apps in Idiomatic Clojure
Ring: Web Apps in Idiomatic Clojure
 
The Real-Time Web (and Other Buzzwords)
The Real-Time Web (and Other Buzzwords)The Real-Time Web (and Other Buzzwords)
The Real-Time Web (and Other Buzzwords)
 
Evolving Archetecture
Evolving ArchetectureEvolving Archetecture
Evolving Archetecture
 
Site Performance - From Pinto to Ferrari
Site Performance - From Pinto to FerrariSite Performance - From Pinto to Ferrari
Site Performance - From Pinto to Ferrari
 
Netapp Michael Galpin
Netapp Michael GalpinNetapp Michael Galpin
Netapp Michael Galpin
 
Websocket shanon
Websocket shanonWebsocket shanon
Websocket shanon
 
Web sockets - Pentesting
Web sockets - Pentesting Web sockets - Pentesting
Web sockets - Pentesting
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)Plone Deployment (PloneConf Edition)
Plone Deployment (PloneConf Edition)
 
SaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
SaltStack's NetAPI at Photobucket - Denver SaltStack MeetupSaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
SaltStack's NetAPI at Photobucket - Denver SaltStack Meetup
 
Browser War 2: Standards strikes back
Browser War 2: Standards strikes backBrowser War 2: Standards strikes back
Browser War 2: Standards strikes back
 
Real time web
Real time webReal time web
Real time web
 
Web-Socket
Web-SocketWeb-Socket
Web-Socket
 

Recently uploaded

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
UiPathCommunity
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..UiPath Community Day Dubai: AI at Work..
UiPath Community Day Dubai: AI at Work..
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Writing Portable WebSockets in Java