web sockets are not just for web browsers
TRANSCRIPT
About Me I am a software developer, based out of Phoenix, Arizona, that
specializes in .NET technology.
Expert on just about all areas of MS.NET programming, but focused on, but not limited to Connected Systems Technologies
Windows Communication Foundation (WCF)
BizTalk
Windows Workflow Foundation (WF)
SQL Server
Senior Consultant for Neudesic, LLC
President of Phoenix Connected Systems User Group
What the Heck are
they?Web Sockets
Overview
We got a problemDilemmas With Traditional Methods Ladies and
Gents, We Have a Solution
Solving the request response dilemma
Where are the 1s and 0s:Code Bits and Demonstration
Meat of the Presentation:
Web Sockets beyond web browsers
Wrap it Up Already!
Conclusion, Questions and
Answers
But Why?:Why Use Web Sockets Beyond Web Browsers
3
1
2
What are Web Sockets?
Web Sockets are a standard created by the W3C as developed as a part of the HTML5 initiative
RFC 6455 defines constraints for a protocol Bi-directional session-ful
communication between client and server
Beats old school polling conventions
Request Response Dilemma
API for using Web Sockets
We Got a Problem Here: Request / Response Dilemma
Request: I need ‘XYZ’ resource
Response: Here is ‘XYZ’ resource
Client Server
JavaScript Solutions
How do we circumvent the fact that we can’t receive events on the client from the server?
JavaScript polling Short Polling
Client checks every so often for events and messages that the server has queued
Long Polling Client makes 60 – 120 second connections to the server and waits for events
during that time
If no events are received, the server closes the session
Rinse and repeat
Web Sockets: The Solution to the Request / Response Dilemma
Web Sockets are full duplex
Walkthrough of the process: Client establishes web socket connection to server
4 minutes pass
Server determines that an event needs to be sent to the client
Event sent through established connection
Problem solved!!
Important takeaway: Connection is synchronous (connect > disconnect), but messages are asynchronous
Web Sockets are not Just for Web Browsers
As of version 4.5, .NET WCF supports Web Sockets Web Sockets are easily implemented using the netHttpBinding
Full Duplex services
Existing service can quickly and easily add a netHttpBinding to the configuration in order to implement this
Shortly, I will show you just how that is done
You’re probably wondering…
Wait a second Chris… You’re telling me that I can use other applications other than web browsers?
The Truth and Nothing but the Truth
Yes my friend. This is the magic of open source protocols.
“How?”, you ask. I’ll show you how!
Why Chris? Firewall benefits
Web Sockets supported by most firewalls since the underlying protocol is via HTTP
OSI Layer 5+ firewalls still support web sockets due to UPGRADE requests
Platform agnostic protocol Protocol defined by W3C and not a single vendor
Supports Java clients
Supports .NET clients
Supports Plethora of Platforms (Python, PHP, Perl)
Services can be built once No more separate solutions for client type restrictions
One service can support various clients
Show me the code one last time!
Demonstrations One service
Windows 8 client
WPF Client
Web client walkthrough
Code and Slides
• Git Hug: https://github.com/jixer/wcf-windows-8-web-sockets/ • My Blog:
http://www.bloggedbychris.com/2013/09/23/nwvdnug-web-sockets-presentation/
PCSUG http://pcsug.org/
Meeting at Interface now
October 2nd, 2013: The Connected Systems Voyage - Charted and Uncharted Territories Chris Myers, President, PCSUG