Building an Interactive & Engaging realtime user experience
Q&A
What is realtime?
Events & Data
It all depends on context
Tweets
Stock quotations and execution
Car brakes response
Relevance
* Slow Loris
* Used to be hung-up on this. But now I've decided that it's all about context and keeping things relevant.
* If you receive the data and it's still relevant and usable then the delivery time is good enough.
* e.g. a tweet 10 seconds after it's been posted
* site analytics 10 seconds after a user comes online
* Sometimes it's got to be instant:
* stock quotes
* game moves
* alert notifications
* break response in a car
What is the realtime web?
Immediate availability of data - Twitter/Social Media
Instant delivery of data
Publish & Subscribe (PubSub)
Notifications (data), Chat, Interaction, Collaboration, Games & more
Improved User Experience
& User Engagement
* The immediate availability of data
* Searchable, discoverable, data available must faster than we'd seen before
* The instant delivery of data
* A search isn't just a one-off thing any more. You are registering your interest in something you are making a subscription.
* Events signify something has just happened. New data is available.
* Technology to achieve this has been around for ages, but it's just gone mainstream.
* Pub/Sub to the masses
* With this technology we can now offer/build:
* Realtime data - financial data, sports data, betting odds, where instant updates matter
* Notifications: New tweets, facebook status updates, calendar appointment prompts, users coming online prompt
* Customer support chat, user to user chat (facebook chat)
* Collaboration: Google Draw, Docs, Spreadsheets
* Social media reaction/integration: Tweets, Facebook likes, Blog post notifications, Images from TwitPic or yFrog/ImageShack
* Games - whether simple gamification updates or true realtime html5 multiplayer games
* All of these can be used to improve the UX and UE
* UX/UE improvements
* We are constantly trying to improve web applications:
* HTML
* CSS
* JavaScript
* realtime communication
Why does it matter?
It enhances what we already use the Internet for
and makes new things possible.
Porn*
Search
Buying stuff
Trolling*
Contributing & Commenting
Data, News & Alerts
Interacting with others
Gaming (multiplayer)
Engagement is a massive part of the User Experience
Image Source: http://nmap.org/favicon/
* Look & Feel are still very important. But the interactivity and engagement that an app provides is now unbelievably important.
* Before all this how often did we sit and look at a web page for longer than a few minutes?
* We are really building applications now. Not just web pages string together which we call an application.
Do you agree?
* Have I missed anything?
* Do you agree or disagree?
The technologies behind delivering realtime web
PubSubhubbub, WebHooks, Messages Queues, Key Value Stores, HTTP Polling, HTTP Streaming, Server Sent Events (SSE)
Client & Server - focus on server <-> client
Roots in finance
A bit of history: Frames, HTTP Polling, LiveConnect, Forever-Frame, XMLHttpRequest, Long-Polling, Streaming
WebSockets
But before we talk about WebSockets...
* There are amazingly fast backend technologies which enable the realtime web (e.g. realtime messages queues, redis, PubSubHubbub, parallel processing technologies) but they don't deliver it to a client, to the user. We're talking server -> client
* As with a lot of things in the past with technology the innovation happened for finance and that sector's requirements and opportunities.
* Things are changing.
* Note: using WSS:// and port 443
* Note: Silverlight won't allow connections on these port ranges. Must use 4502-4534
* See: http://msdn.microsoft.com/en-us/library/cc645032(v=vs.95).aspx