Submit Search
Upload
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
•
3 likes
•
2,471 views
Arun Gupta
Follow
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Read less
Read more
Technology
Report
Share
Report
Share
1 of 50
Download now
Download to read offline
Recommended
Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0
Arun Gupta
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
Arun Gupta
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
Arun Gupta
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Arun Gupta
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Arun Gupta
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
Arun Gupta
Recommended
Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0
Arun Gupta
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
The Java EE 7 Platform: Productivity & HTML5 at JavaOne Latin America 2012
Arun Gupta
Running your Java EE 6 applications in the Cloud
Running your Java EE 6 applications in the Cloud
Arun Gupta
GlassFish & Java EE Business Update @ CEJUG
GlassFish & Java EE Business Update @ CEJUG
Arun Gupta
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Arun Gupta
Powering the Next Generation Services with Java Platform - Spark IT 2010
Powering the Next Generation Services with Java Platform - Spark IT 2010
Arun Gupta
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Running your Java EE 6 applications in the Cloud @ Silicon Valley Code Camp 2010
Arun Gupta
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
Arun Gupta
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
Running your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
Arun Gupta
5050 dev nation
5050 dev nation
Arun Gupta
GlassFish REST Administration Backend
GlassFish REST Administration Backend
Arun Gupta
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
Arun Gupta
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Arun Gupta
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
Arun Gupta
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
Arun Gupta
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
Arun Gupta
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
Arun Gupta
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
Arun Gupta
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Arun Gupta
The Java EE 7 Platform: Productivity++ & Embracing HTML5
The Java EE 7 Platform: Productivity++ & Embracing HTML5
Arun Gupta
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Skills Matter
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
Java EE 7 overview
Java EE 7 overview
Masoud Kalali
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
Arun Gupta
Understanding
Understanding
Arun Gupta
Websocket 1.0
Websocket 1.0
Arun Gupta
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
JAX London
More Related Content
What's hot
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Arun Gupta
Running your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
Arun Gupta
5050 dev nation
5050 dev nation
Arun Gupta
GlassFish REST Administration Backend
GlassFish REST Administration Backend
Arun Gupta
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
Arun Gupta
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
Arun Gupta
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Arun Gupta
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
Arun Gupta
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
Arun Gupta
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
Arun Gupta
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
Arun Gupta
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
Arun Gupta
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Arun Gupta
The Java EE 7 Platform: Productivity++ & Embracing HTML5
The Java EE 7 Platform: Productivity++ & Embracing HTML5
Arun Gupta
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Skills Matter
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Arun Gupta
Java EE 7 overview
Java EE 7 overview
Masoud Kalali
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Pavel Bucek
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
Arun Gupta
Understanding
Understanding
Arun Gupta
What's hot
(20)
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
Running your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
5050 dev nation
5050 dev nation
GlassFish REST Administration Backend
GlassFish REST Administration Backend
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
GIDS 2012: PaaSing a Java EE Application
GIDS 2012: PaaSing a Java EE Application
Java EE 6 and GlassFish v3: Paving the path for future
Java EE 6 and GlassFish v3: Paving the path for future
GIDS 2012: Java Message Service 2.0
GIDS 2012: Java Message Service 2.0
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
The Java EE 7 Platform: Developing for the Cloud (FISL 12)
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBe...
The Java EE 7 Platform: Productivity++ & Embracing HTML5
The Java EE 7 Platform: Productivity++ & Embracing HTML5
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
Arun Gupta: London Java Community: Java EE 6 and GlassFish 3
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
Java EE 7 overview
Java EE 7 overview
What's next for Java API for WebSocket (JSR 356)
What's next for Java API for WebSocket (JSR 356)
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
Understanding
Understanding
Similar to Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Websocket 1.0
Websocket 1.0
Arun Gupta
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
JAX London
HTML5 WebSocket Introduction
HTML5 WebSocket Introduction
Marcelo Jabali
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Peter Moskovits
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Masoud Kalali
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
Kazuchika Sekiya
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
Geertjan Wielenga
Programming WebSockets with Glassfish and Grizzly
Programming WebSockets with Glassfish and Grizzly
C2B2 Consulting
Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001
jucaab
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
Frank Greco
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
Peter Lubbers
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Charles Moulliard
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSockets
Peter Moskovits
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Reza Rahman
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
purans
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
Innotrade GmbH, jWebSocket.org, Alexander Schulze
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
David Delabassee
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
David Delabassee
Similar to Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
(20)
Websocket 1.0
Websocket 1.0
HTML5 Websockets and Java - Arun Gupta
HTML5 Websockets and Java - Arun Gupta
HTML5 WebSocket Introduction
HTML5 WebSocket Introduction
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Extending JMS to Web Devices over HTML5 WebSockets - JavaOne 2011
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
JavaCro'14 - Consuming Java EE Backends in Desktop, Web, and Mobile Frontends...
Consuming Java EE in Desktop, Web, and Mobile Frontends
Consuming Java EE in Desktop, Web, and Mobile Frontends
Programming WebSockets with Glassfish and Grizzly
Programming WebSockets with Glassfish and Grizzly
Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Camelone-2012 HTML5 WebSocket ActiveMQ/Camel
Building Living Web Applications with HTML5 WebSockets
Building Living Web Applications with HTML5 WebSockets
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Project Avatar (Lyon JUG & Alpes JUG - March 2014)
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
More from Arun Gupta
5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
Arun Gupta
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
Arun Gupta
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
Arun Gupta
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
Arun Gupta
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
Arun Gupta
Why Amazon Cares about Open Source
Why Amazon Cares about Open Source
Arun Gupta
Machine learning using Kubernetes
Machine learning using Kubernetes
Arun Gupta
Building Cloud Native Applications
Building Cloud Native Applications
Arun Gupta
Chaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
Arun Gupta
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
Arun Gupta
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
Arun Gupta
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
Arun Gupta
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
Arun Gupta
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
Arun Gupta
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
Arun Gupta
Container Landscape in 2017
Container Landscape in 2017
Arun Gupta
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Arun Gupta
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
Arun Gupta
Thanks Managers!
Thanks Managers!
Arun Gupta
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
Arun Gupta
More from Arun Gupta
(20)
5 Skills To Force Multiply Technical Talents.pdf
5 Skills To Force Multiply Technical Talents.pdf
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubernetes - AI Conclave 2019
Machine Learning using Kubeflow and Kubernetes
Machine Learning using Kubeflow and Kubernetes
Secure and Fast microVM for Serverless Computing using Firecracker
Secure and Fast microVM for Serverless Computing using Firecracker
Building Java in the Open - j.Day at OSCON 2019
Building Java in the Open - j.Day at OSCON 2019
Why Amazon Cares about Open Source
Why Amazon Cares about Open Source
Machine learning using Kubernetes
Machine learning using Kubernetes
Building Cloud Native Applications
Building Cloud Native Applications
Chaos Engineering with Kubernetes
Chaos Engineering with Kubernetes
How to be a mentor to bring more girls to STEAM
How to be a mentor to bring more girls to STEAM
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
The Serverless Tidal Wave - SwampUP 2018 Keynote
The Serverless Tidal Wave - SwampUP 2018 Keynote
Introduction to Amazon EKS - KubeCon 2018
Introduction to Amazon EKS - KubeCon 2018
Mastering Kubernetes on AWS - Tel Aviv Summit
Mastering Kubernetes on AWS - Tel Aviv Summit
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
Container Landscape in 2017
Container Landscape in 2017
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Java EE and NoSQL using JBoss EAP 7 and OpenShift
Docker, Kubernetes, and Mesos recipes for Java developers
Docker, Kubernetes, and Mesos recipes for Java developers
Thanks Managers!
Thanks Managers!
Migrate your traditional VM-based Clusters to Containers
Migrate your traditional VM-based Clusters to Containers
Recently uploaded
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Rafal Los
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
Antenna Manufacturer Coco
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
Enterprise Knowledge
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Miguel Araújo
Recently uploaded
(20)
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Slack Application Development 101 Slides
Slack Application Development 101 Slides
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
1.
JSR 356: Building
HTML5 WebSocket Apps in Java Arun Gupta Java EE & GlassFish Guy blogs.oracle.com/arungupta, @arungupta 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
2.
The preceding is
intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
3.
Agenda
§ Primer on WebSocket § JSR 356: Java API for WebSocket 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
4.
Interactive Web Sites
§ HTTP is half-duplex § HTTP is verbose § Hacks for Server Push – Polling – Long Polling – Comet/Ajax § Complex, Inefficient, Wasteful 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
5.
WebSocket to the
Rescue § TCP based, bi-directional, full-duplex messaging § Originally proposed as part of HTML5 § IETF-defined Protocol: RFC 6455 – Handshake – Data Transfer § W3C defined JavaScript API – Candidate Recommendation 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
6.
What’s the basic
idea ? § Upgrade HTTP to upgrade to WebSocket – Single TCP connection – Transparent to proxies, firewalls, and routers § Send data frames in both direction (Bi-directional) – No headers, cookies, authentication – No security overhead – “ping”/”pong” frames for keep-alive § Send message independent of each other (Full Duplex) § End the connection 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
7.
Establish a connection
Handshake Request Client Server Handshake Response 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
8.
Handshake Request
GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ== Origin: http://example.com Sec-WebSocket-Protocol: chat, superchat Sec-WebSocket-Version: 13 " 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
9.
Handshake Response
HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat " 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
10.
Establishing a Connection
Handshake Request Client Server Handshake Response Connected ! 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
11.
WebSocket Lifecycle
Connected ! open open message message message message Client error Server message close Disconnected 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
12.
WebSocket API
www.w3.org/TR/websockets/ 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
13.
Java WebSocket Implementations
Java-WebSocket Kaazing WebSocket Gateway Grizzly WebSocket SDK Apache Tomcat 7 Webbit GlassFish Atmosphere Autobahn websockets4j WeberKnecht GNU WebSocket4J Jetty Netty JBoss TorqueBox Caucho Resin SwaggerSocket jWebSocket jWamp 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
14.
Browser Support 14
Copyright © 2012, Oracle and/or its affiliates. All rights reserved. http://caniuse.com/websockets
15.
JSR 356 Specification
§ Standard API for creating WebSocket Applications § Transparent Expert Group – jcp.org/en/jsr/detail?id=356 – java.net/projects/websocket-spec § Now: Early Draft Review § December: Public Draft Review § Will be in Java EE 7 – Under discussion: Client API in Java SE 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
16.
JSR 356: Reference
Implementation § Tyrus: java.net/projects/tyrus § Originated as WebSocket SDK – java.net/projects/websocket-sdk § Pluggable Protocol Provider – Default is Grizzly/GlassFish – Portable to WebLogic § Integrated in GlassFish 4 Builds 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
17.
JSR 356 Expert
Group Jean-Francois Arcand Individual Scott Ferguson Caucho Technology, Inc Joe Walnes DRW Holdings, LLC Minehiko IIDA Fujitsu Limited Wenbo Zhu Google Inc. Bill Wigger IBM Justin Lee Individual Danny Coward Oracle Rémy Maucherat RedHat Moon Namkoong TmaxSoft, Inc. Mark Thomas VMware Wei Chen Voxeo Corporation Greg Wilkins Individual 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
18.
Java API for
WebSocket Features § Create WebSocket Client/Endpoints – Annotation-driven (@WebSocketEndpoint) – Interface-driven (Endpoint) § SPI for extensions and data frames § Integration with Java EE Web container 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
19.
Touring the APIs 19
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
20.
Note: The APIs
might change before final release ! 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
21.
Hello World and
Basics POJO 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
22.
Hello World
import javax.net.websocket.annotations.*; @WebSocketEndpoint("/hello") public class HelloBean { @WebSocketMessage public String sayHello(String name) { return “Hello “ + name; } }" 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
23.
WebSocket Annotations
Annotation Level Purpose @WebSocketEndpoint" class Turns a POJO into a WebSocket Endpoint @WebSocketOpen" method Intercepts WebSocket Open events @WebSocketClose" method Intercepts WebSocket Close events @WebSocketMessage" method Intercepts WebSocket Message events method @WebSocketPathParam" Flags a matched path segment of a URI-template parameter @WebSocketError" method Intercepts errors during a conversation 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
24.
@WebSocketEndpoint attributes
Relative URI or URI template value" e.g. /hello or /chat/{subscriber-level} decoders" list of message decoder classnames encoders" list of message encoder classnames subprotocols" list of the names of the supported subprotocols 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
25.
Custom Payloads
@WebSocketEndpoint( value="/hello", encoders={MyMessage.class}, decoders={MyMessage.class} ) public class MyEndpoint { . . . }" " " 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
26.
Custom Payloads –
Text public class MyMessage implements Decoder.Text<MyMessage>, Encoder.Text<MyMessage> { private JsonObject jsonObject; public MyMessage decode(String s) { jsonObject = new JsonReader(new StringReader(s)).readObject(); return this;" }" public boolean willDecode(String string) { return true; // Only if can process the payload }" " public String encode(MyMessage myMessage) { return myMessage.jsonObject.toString(); } }" 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
27.
Custom Payloads –
Binary public class MyMessage implements Decoder.Binary<MyMessage>, Encoder.Binary<MyMessage> { public MyMessage decode(byte[] bytes) { . . . return this;" }" public boolean willDecode(byte[] bytes) { . . . return true; // Only if can process the payload }" " public byte[] encode(MyMessage myMessage) { . . . } }" 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
28.
Chat Sample
@WebSocketEndpoint("/chat")" public class ChatBean {" Set<Session> peers = Collections.synchronizedSet(…); @WebSocketOpen public void onOpen(Session peer) { peers.add(peer); } @WebSocketClose public void onClose(Session peer) { peers.remove(peer); } . . ." 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
29.
Chat Sample
. . . @WebSocketMessage" public void message(String message, Session client) {" for (Session peer : peers) { peer.getRemote().sendObject(message); } } }" 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
30.
URI Template Matching
§ Level 1 only @WebSocketEndpoint(“/orders/{order-id}”) public class MyEndpoint { @WebSocketMessage public void processOrder( @WebSocketPathParam(“order-id”)String orderId) { . . . } } 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
31.
Which methods can
be @WebSocketMessage ? § A parameter type that can be decoded in incoming message – String, byte[], ByteBuffer or any type for which there is a decoder § An optional Session parameter § 0..n String parameters annotated with @WebSocketPathParameter" § A return type that can be encoded in outgoing message – String, byte[], ByteBuffer or any type for which there is a encoder 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
32.
WebSocket Subprotocols
§ Facilitates application layer protocols § Registered in a Subprotocol Name Registry – Identifier, Common name, Definition – www.iana.org/assignments/websocket/websocket.xml#subprotocol-name § 4 officially registered – Message Broker (2 versions) – SOAP – WebSocket Application Messaging Protocol (WAMP) § RPC, PubSub 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
33.
Packaging – Java
EE Style § Client side § Classes + resources packaged as a JAR § Web Container § Classes + resources packaged in a WAR file 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
34.
Hello World and
Basics Non-POJO 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
35.
Hello World Server
import javax.net.websocket.*;" " public class HelloServer extends Endpoint { @Override public void onOpen(Session session) { session.addMessageHandler(new MessageHandler.Text() { public void onMessage(String name) { try { session.getRemote().sendString(“Hello “ + name); } catch (IOException ex) { } } }); } }" 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
36.
Server Configuration -
Bootstrap URI serverURI = new URI("/hello"); ServerContainer serverContainer = ContainerProvider.getServerContainer(); Endpoint helloServer = new HelloServer(); ServerEndpointConfiguration serverConfig = new DefaultServerConfiguration(serverURI); serverContainer.publishServer(helloServer, serverConfig);" Recommended in ServletContextListener *" 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
37.
Hello World Client
import javax.net.websocket.*;" " public class HelloClient extends Endpoint { @Override public void onOpen(Session session) { try { session.getRemote().sendString("Hello you !"); } catch (IOException ioe) { // . . . } } }" 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
38.
Server and Client
Configuration § Server – URI matching algorithm – Subprotocol and extension negotiation – Message encoders and decoders – Origin check – Handshake response § Client – Requested subprotocols and extensions – Message encoders and decoders 38 – Request URI Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
39.
Main API Classes:
javax.net.websocket.* § Endpoint: Intercepts WebSocket lifecycle events § MessageHandler: Handles all incoming messages for an Endpoint § RemoteEndpoint: Represents the ‘other end’ of this conversation § Session: Represents the active conversation 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
40.
Sending the Message Whole
string * RemoteEndpoint" sendString(String message)" Binary data * RemoteEndpoint" sendString(ByteBuffer message)" String fragments RemoteEndpoint" sendPartialString(String part, boolean last)" sendPartialData(ByteBuffer part, boolean Binary data fragments RemoteEndpoint" last)" Blocking stream of text RemoteEndpoint" Writer getSendWriter())" Blocking stream of binary RemoteEndpoint" OutputStream getSendStream()" data Custom object of type T * RemoteEndpoint<T>" sendObject(T customObject)" * additional flavors: by completion, by future 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
41.
Receiving the Message Whole
string MessageHandler.Text" onMessage(String message)" Binary data MessageHandler.Binary" onMessage(ByteBuffer message)" onMessage(String part, boolean String fragments MessageHandler.AsyncText" last)" onMessage(ByteBuffer part, Binary data fragments MessageHandler.AsyncBinary" boolean last)" Blocking stream of text MessageHandler.CharacterStream" onMessage(Reader r)" Blocking stream of MessageHandler.BinaryStream" onMessage(InputStream r)" binary data Custom object of type T MessageHandler.DecodedObject<T>" onMessage(T customObject)" 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
42.
Relationship with Servlet
3.1 § Allows a portable way to upgrade HTTP request § New API – HttpServletRequest.upgrade(ProtocolHandler handler)" 42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
43.
Security
§ Authenticates using Servlet security mechanism during opening handshake – Endpoint mapped by ws:// is protected using security model defined using the corresponding http:// URI § Authorization defined using <security-constraint>" – TBD: Add/reuse security annotations § Transport Confidentiality using wss://" – Access allowed over encrypted connection only 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
44.
API TODO
Lots … § Refactoring/renaming – Class naming, fluency – Collapse MessageHandlers – Re-org/rename annotations Use of @WebSocketEndpoint on Endpoint instead of ServerConfiguration API § More knobs and dials on POJO § Exception handling § Integration with Java EE 44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
45.
How to view
WebSocket messages ? Capture traffic on loopback 45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
46.
How to view
WebSocket messages ? chrome://net-internals -> Sockets -> View live sockets 46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
47.
Resources
§ Specification – JSR: jcp.org/en/jsr/detail?id=356 – Mailing Lists, JIRA, Archive: java.net/projects/websocket-spec – Now: Early Draft Review – Will be in Java EE 7 § Reference Implementation – Tyrus: java.net/projects/tyrus – Now: Integrated in GlassFish 4 builds 47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
48.
Q&A 48
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
49.
Graphic Section Divider 49
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
50.
50
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Download now