SlideShare a Scribd company logo
1 of 28
Download to read offline
ColdFusion Summit 2016
Realtime with WebSockets w/ Giancarlo Gomez
Realtime with WebSockets
Who am I?
‣ Proud Father of 3
‣ Web Developer since 1999
‣ Freelance since 2001
‣ South Florida ColdFusion User Group Co-Manager
‣ Owner of Fuse Developments, Inc. and CrossTrackr, Inc.
Realtime with WebSockets
What are WebSockets?
WebSockets are a full-duplex, persistent connection from a client to a server over a single
TCP Connection. Once the connection is established, it stays open until the client or
server decide to close the connection. This makes web programming entirely event
driven, not (just) user initiated. It is stateful, as a single running server is aware of all
connections, allowing you to communicate with any number of them at any given time.
Blah Blah Blah …
Show me what I can do with this
and I don’t mean chat.
Realtime with WebSockets
HTTP Architecture
Request
Response
Half-Duplex Communication
Realtime with WebSockets
Short Polling
Request
Response
Loop AJAX Request on client side and ask the server for an update
6
Realtime with WebSockets
Long Polling
Request
Response
Send AJAX request to server, request loops on server until there is a

response and then returns to client and processes starts over again.
Realtime with WebSockets
WebSockets
Handshake (HTTP Upgrade)
Bidirectional Messaging
open and persistent connection
On side closes channel
connection closed
Realtime with WebSockets
WebSockets in ColdFusion
‣ Supported as of ColdFusion 10
‣ Support over defined port 

Defaults to 8575
‣ Flash Fallback 

Port 1243

Defined in lib/neo-websocket.xml
‣ Set Max Data Size (1024 Kb)
‣ 100 Connection Limit on Standard

* Unlimited in Enterprise
‣ Introduced in ColdFusion 11
‣ No Connection Limits
‣ Proxy Support 

Great when behind a firewall and easier when
dealing with SSL and multiple domains
‣ SSL Support

Browsers no longer allow for non-secure
connections over secured connections
‣ Cluster Support

* Enterprise Only
Realtime with WebSockets
Enable WebSockets in ColdFusion in “4 EASY STEPS”
‣ Enable in Admin
‣ Add 1 Line in your Application.cfc
‣ Use the cfwebsocket tag
‣ Write some JavaScript and get creative
Realtime with WebSockets
ColdFusion 10 Admin
Realtime with WebSockets
ColdFusion 11 Admin
Using Proxy Standard Enterprise
DEMO 01
4 easy steps and a little bit more …
Realtime with WebSockets
Secure WebSockets - WSS
‣ Easiest Method, use Proxy. It relies on the SSL certificates defined for the site. Requires …
‣ IIS8+ with WebSocket Protocol Enabled
‣ Apache 2.2+ compiled with worker module not prefork (Apache MPM Worker)
‣ Using Built in WebSocket Server
‣ Create JKS (Java KeyStore) or PKCS12 file.
‣ JVM Setting (Fixes SSLException Error) 

-Dcom.sun.net.ssl.enableECC=false
‣ If using self-assigned certificate
‣ Add certificate as a trusted certificate in Java keystore

* this will fix issues with cfhttp calls as well - the following might as well

-Dsun.security.ssl.allowUnsafeRenegotiation=true -Djsse.enableSNIExtension=false
‣ Trust the certificate using your browser
Realtime with WebSockets
Secure WebSockets - WSS - Server Requirements
Realtime with WebSockets
Secure WebSockets - WSS - Proxy w/ IIS
DEMO 02
What do you mean it does not work?
Realtime with WebSockets
WebSocket Clusters
Instance A
Client A Client B
Instance B
Client C Client D
Realtime with WebSockets
WebSockets Clusters
▸ Must use built in WebSocket Server
▸ Create Instances in Instance Manager
▸ Define Cluster
▸ Rebuild Connections
▸ Turn on WebSocket clustering on all instances
▸ Have fun testing ….
Realtime with WebSockets
Real World Uses
‣ Dashboards (Stocks, Airlines, …)
‣ Auctions Sites
‣ Chat
‣ Push Messaging (email, notifications, etc)
‣ Games
‣ Use your imagination … anything is possible
Real World Issues!!!
Me and every other Developer
‣ Network Connections
‣ Application Reloads
‣ Server Uptime
Realtime with WebSockets
Hello AdvancedSocket
‣ Easily integrates with cfwebsocket
‣ Callbacks for connection drops that easily lets you add notifications to for users
‣ Application Reinit
‣ Server Downtime
‣ Network Connection
‣ Automatically reconnect to subscribed channels
DEMO 03
Wait, they gave me something kind of broken?
DEMO 04
Ok show me how easy it is to build an app …
Now we chat
DEMO 05
I don’t meet the requirements.
What can I do?
Realtime with WebSockets
Helpful Links
‣ Repos
‣ https://github.com/GiancarloGomez/Realtime-With-WebSockets-Demo-Code
‣ https://github.com/GiancarloGomez/AdvancedSocket
‣ https://github.com/GiancarloGomez/ColdFusion-CFSummit-WebSockets
‣ SSL Related Links
‣ https://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/
‣ https://info.ssl.com/how-to-create-a-pfx-p12-certificate-file-using-openssl/
‣ ColdFusion Articles
‣ http://www.adobe.com/devnet/coldfusion/articles/html5-websockets-coldfusion-pt1.html
‣ http://www.adobe.com/devnet/coldfusion/articles/html5-websockets-coldfusion-pt2.html
‣ http://www.adobe.com/devnet/coldfusion/articles/using-websocket.html
‣ https://helpx.adobe.com/coldfusion/developing-applications/coldfusion-and-html-5/using-coldfusion-websocket/websocket-enhancements.html
‣ WebSockets (Server / Services)
‣ http://socket.io/
‣ https://www.pubnub.com/
‣ https://pusher.com/
http://giancarlogomez.com
giancarlo.gomez@gmail.com
@GiancarloGomez
https://github.com/GiancarloGomez
https://www.linkedin.com/in/giancarlogomez
Q & A

More Related Content

Similar to Realtime with websockets

WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersViktor Gamov
 
Debugging with Fiddler
Debugging with FiddlerDebugging with Fiddler
Debugging with FiddlerIdo Flatow
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0Jeff Chu
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketMauricio "Maltron" Leal
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)Ericom Software
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureFrank Greco
 
Ajax Push For Revolutionary Enterprise Applications
Ajax Push For Revolutionary Enterprise ApplicationsAjax Push For Revolutionary Enterprise Applications
Ajax Push For Revolutionary Enterprise Applicationselliando dias
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017ElifTech
 
Novosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDoris Chen
 
Citirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityCitirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityDigicomp Academy AG
 
Towards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryTowards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryIT Expert Club
 
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01purans
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...OutSystems
 
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW Kel
 

Similar to Realtime with websockets (20)

WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
Debugging with Fiddler
Debugging with FiddlerDebugging with Fiddler
Debugging with Fiddler
 
.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0.NET Conf 2019 高雄場 - .NET Core 3.0
.NET Conf 2019 高雄場 - .NET Core 3.0
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocket
 
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
 
WebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the FutureWebSocket Perspectives and Vision for the Future
WebSocket Perspectives and Vision for the Future
 
Ajax Push For Revolutionary Enterprise Applications
Ajax Push For Revolutionary Enterprise ApplicationsAjax Push For Revolutionary Enterprise Applications
Ajax Push For Revolutionary Enterprise Applications
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017
 
It pro toronto 2013
It pro toronto 2013It pro toronto 2013
It pro toronto 2013
 
Novosco: Citrix tips and best practices
Novosco: Citrix tips and best practicesNovosco: Citrix tips and best practices
Novosco: Citrix tips and best practices
 
Developing Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax PushDeveloping Revolutionary Web Applications using Comet and Ajax Push
Developing Revolutionary Web Applications using Comet and Ajax Push
 
Citirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise MobilityCitirx Day 2013: Citrix Enterprise Mobility
Citirx Day 2013: Citrix Enterprise Mobility
 
Towards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI StoryTowards the Cloud: Architecture Patterns and VDI Story
Towards the Cloud: Architecture Patterns and VDI Story
 
ServerSentEventsV2.pdf
ServerSentEventsV2.pdfServerSentEventsV2.pdf
ServerSentEventsV2.pdf
 
Web socket with php v2
Web socket with php v2Web socket with php v2
Web socket with php v2
 
Global Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San DiegoGlobal Windows Azure Bootcamp - San Diego
Global Windows Azure Bootcamp - San Diego
 
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
Jwebsocketmobiletechcon2010en 100912071225 Phpapp01
 
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerryjWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
jWebSocket MobileTechCon 2010 - WebSockets on Android, Symbian and BlackBerry
 
Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...Training Webinar: Enterprise application performance with server push technol...
Training Webinar: Enterprise application performance with server push technol...
 
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW
AMIMOTO: WordPress + Amazon Web Services Hands-on WARSAW
 

More from ColdFusionConference

Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server DatabasesColdFusionConference
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsColdFusionConference
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectColdFusionConference
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerColdFusionConference
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISColdFusionConference
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016ColdFusionConference
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016ColdFusionConference
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusionConference
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMSColdFusionConference
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webColdFusionConference
 

More from ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 

Recently uploaded

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Realtime with websockets

  • 1. ColdFusion Summit 2016 Realtime with WebSockets w/ Giancarlo Gomez
  • 2. Realtime with WebSockets Who am I? ‣ Proud Father of 3 ‣ Web Developer since 1999 ‣ Freelance since 2001 ‣ South Florida ColdFusion User Group Co-Manager ‣ Owner of Fuse Developments, Inc. and CrossTrackr, Inc.
  • 3. Realtime with WebSockets What are WebSockets? WebSockets are a full-duplex, persistent connection from a client to a server over a single TCP Connection. Once the connection is established, it stays open until the client or server decide to close the connection. This makes web programming entirely event driven, not (just) user initiated. It is stateful, as a single running server is aware of all connections, allowing you to communicate with any number of them at any given time.
  • 4. Blah Blah Blah … Show me what I can do with this and I don’t mean chat.
  • 5. Realtime with WebSockets HTTP Architecture Request Response Half-Duplex Communication
  • 6. Realtime with WebSockets Short Polling Request Response Loop AJAX Request on client side and ask the server for an update 6
  • 7. Realtime with WebSockets Long Polling Request Response Send AJAX request to server, request loops on server until there is a
 response and then returns to client and processes starts over again.
  • 8. Realtime with WebSockets WebSockets Handshake (HTTP Upgrade) Bidirectional Messaging open and persistent connection On side closes channel connection closed
  • 9. Realtime with WebSockets WebSockets in ColdFusion ‣ Supported as of ColdFusion 10 ‣ Support over defined port 
 Defaults to 8575 ‣ Flash Fallback 
 Port 1243
 Defined in lib/neo-websocket.xml ‣ Set Max Data Size (1024 Kb) ‣ 100 Connection Limit on Standard
 * Unlimited in Enterprise ‣ Introduced in ColdFusion 11 ‣ No Connection Limits ‣ Proxy Support 
 Great when behind a firewall and easier when dealing with SSL and multiple domains ‣ SSL Support
 Browsers no longer allow for non-secure connections over secured connections ‣ Cluster Support
 * Enterprise Only
  • 10. Realtime with WebSockets Enable WebSockets in ColdFusion in “4 EASY STEPS” ‣ Enable in Admin ‣ Add 1 Line in your Application.cfc ‣ Use the cfwebsocket tag ‣ Write some JavaScript and get creative
  • 12. Realtime with WebSockets ColdFusion 11 Admin Using Proxy Standard Enterprise
  • 13. DEMO 01 4 easy steps and a little bit more …
  • 14. Realtime with WebSockets Secure WebSockets - WSS ‣ Easiest Method, use Proxy. It relies on the SSL certificates defined for the site. Requires … ‣ IIS8+ with WebSocket Protocol Enabled ‣ Apache 2.2+ compiled with worker module not prefork (Apache MPM Worker) ‣ Using Built in WebSocket Server ‣ Create JKS (Java KeyStore) or PKCS12 file. ‣ JVM Setting (Fixes SSLException Error) 
 -Dcom.sun.net.ssl.enableECC=false ‣ If using self-assigned certificate ‣ Add certificate as a trusted certificate in Java keystore
 * this will fix issues with cfhttp calls as well - the following might as well
 -Dsun.security.ssl.allowUnsafeRenegotiation=true -Djsse.enableSNIExtension=false ‣ Trust the certificate using your browser
  • 15. Realtime with WebSockets Secure WebSockets - WSS - Server Requirements
  • 16. Realtime with WebSockets Secure WebSockets - WSS - Proxy w/ IIS
  • 17. DEMO 02 What do you mean it does not work?
  • 18. Realtime with WebSockets WebSocket Clusters Instance A Client A Client B Instance B Client C Client D
  • 19. Realtime with WebSockets WebSockets Clusters ▸ Must use built in WebSocket Server ▸ Create Instances in Instance Manager ▸ Define Cluster ▸ Rebuild Connections ▸ Turn on WebSocket clustering on all instances ▸ Have fun testing ….
  • 20. Realtime with WebSockets Real World Uses ‣ Dashboards (Stocks, Airlines, …) ‣ Auctions Sites ‣ Chat ‣ Push Messaging (email, notifications, etc) ‣ Games ‣ Use your imagination … anything is possible
  • 21. Real World Issues!!! Me and every other Developer ‣ Network Connections ‣ Application Reloads ‣ Server Uptime
  • 22. Realtime with WebSockets Hello AdvancedSocket ‣ Easily integrates with cfwebsocket ‣ Callbacks for connection drops that easily lets you add notifications to for users ‣ Application Reinit ‣ Server Downtime ‣ Network Connection ‣ Automatically reconnect to subscribed channels
  • 23. DEMO 03 Wait, they gave me something kind of broken?
  • 24. DEMO 04 Ok show me how easy it is to build an app … Now we chat
  • 25. DEMO 05 I don’t meet the requirements. What can I do?
  • 26. Realtime with WebSockets Helpful Links ‣ Repos ‣ https://github.com/GiancarloGomez/Realtime-With-WebSockets-Demo-Code ‣ https://github.com/GiancarloGomez/AdvancedSocket ‣ https://github.com/GiancarloGomez/ColdFusion-CFSummit-WebSockets ‣ SSL Related Links ‣ https://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/ ‣ https://info.ssl.com/how-to-create-a-pfx-p12-certificate-file-using-openssl/ ‣ ColdFusion Articles ‣ http://www.adobe.com/devnet/coldfusion/articles/html5-websockets-coldfusion-pt1.html ‣ http://www.adobe.com/devnet/coldfusion/articles/html5-websockets-coldfusion-pt2.html ‣ http://www.adobe.com/devnet/coldfusion/articles/using-websocket.html ‣ https://helpx.adobe.com/coldfusion/developing-applications/coldfusion-and-html-5/using-coldfusion-websocket/websocket-enhancements.html ‣ WebSockets (Server / Services) ‣ http://socket.io/ ‣ https://www.pubnub.com/ ‣ https://pusher.com/
  • 28. Q & A