SlideShare uma empresa Scribd logo
1 de 48
going real time with

SOCKET.IO       zz




             Arnout Kazemier / @3rdEden
who am I                       stalk me on
                                      twitter
socket.io team member

winner node knockout 2011

early noder since 0.1.3             @3rdEden
all around performance / high
availability & scalability geek.

does not like coffeescript ;)
what is socket.io
persistent connection
between server & client
real time
cross browser
cross browser
 even IE 5.5 should work <3
magic
open source
learnboost/socket.io            - node.js server
learnboost/socket.io-client   - javascript client




             available on github.com
community
google: 1662 groups members
irc: 50 / 60 users online




server: 2613 watchers, 276 forks
client: 1404 watchers, 123 forks
getting started
installing the server
    npm install socket.io




                            installation
installing the client
  npm install socket.io-client




                             installation
var http = require(‘http’);

var s = http.createServer(function(q,r){
  r.writeHead(200); r.end(‘sup’);
});

s.listen(80);

var io = require(‘socket.io).listen(s);


                       listening on the server
var io = require(‘socket.io).listen(80);




                      listening on the server
io.sockets.on(‘connection’, function (socket) {
  socket.on(‘custom event’, function (data) {
    socket.emit(‘custom event received’);
  });

  socket.on(‘disconnect’, function (){
    console.log(‘client disconnected’);
  });
});




                                 listening on the server
<script src=”/socket.io/socket.io.js”></script>
<script>
var socket = io.connect();
socket.on(‘connect’, function () {
  socket.emit(‘custom event’, ‘pewpew’);
});
</script>



                          listening on the client
var io = require(‘socket.io’).listen(80);

// express styled configuration
io.configure(‘development’, function(){
  io.set(‘log level’, 3);
});

io.configure(‘production’, function(){
  io.set(‘log level’, 1);
});
                                  configuring
messaging
socket.emit(‘event’, ‘message’);
socket.emit(`event`, { json:‘here’ });


socket.on(‘event’, function (data) {
   // data is plain text, or our json
});


             sending events client & server
socket.send(‘plain text message’);
socket.json.send({ json:‘here’ });
// send method triggers the message
// event
socket.on(‘message’, function (data) {
   // data is plain text, or our json
});

        sending messages client & server
socket.send(‘plain text message’);
socket.json.send({ json:‘here’ });


socket.on(‘message’, function (data) {
   // data is plain text, or our json
});


                             message flag
// broadcasts a message to all sockets
socket.broadcast.emit(‘event’);




                             message flag
// no need to internally buffer this msg
socket.volatile.emit(‘event’);




                             message flag
// broadcast, but only to people in this room
socket.broadcast.to(‘room’).emit(‘event’);




                               message flag
// broadcast to everyone
io.sockets.emit(‘event’);
io.sockets.send(‘hello nodejsconf.it’);




                                message flag
// on the client
socket.send(‘hello nodejsconf.it’, function(arg) {
  console.log(‘message reached the server’);
  console.log(‘arg:’, arg); // ‘hello’
});

// on the server
socket.on(‘message’, function (msg, fn) {
  console.log(‘msg:’, msg);
  fn(‘hello’); // confirm the acknowledgement
});

                              acknowledgements
what happens when
   you connect
socket.io client   socket.io server
socket.io client   handshake request   socket.io server
accepted transports,
                   connection id and config
                         is returned




socket.io client   handshake is accepted     socket.io server
feature detection is used to find a
                        working transport layer




socket.io client                                        socket.io server
available transports

Web Socket
available transports

Web Socket
Flash Socket
available transports

Web Socket
Flash Socket
HTML File
available transports

Web Socket
Flash Socket
HTML File
XHR Polling
available transports

Web Socket
Flash Socket
HTML File
XHR Polling
JSONP Polling
real time connection is
socket.io client    established with the     socket.io server
                           server
heartbeats are send to
                   ensure proper connection




                    real time connection is
socket.io client     established with the     socket.io server
                            server
DEMO
upcoming release
rewrite of static backend
 gzip support
 dynamic socket.io.js generation




                         upcoming release
io.configure(function(){
  io.enable(‘browser client minification’);
  io.set(‘transports’, [
      ‘websocket’
    , ‘xhr-polling’
  ]);
});



                             upcoming release
/socket.io/socket.io+xhr-polling.js
/socket.io/socket.io+websocket+htmlfile.js




                             upcoming release
release of the RedisStore
scaling socket.io across multiple processes
and servers by introducing 1/2 lines of code




                            upcoming release
DEMO
Q          A
TALK NERDY TO ME
http://socket.io
http://github.com/learnboost/socket.io

irc.freenode.net #socket.io




         <3 thanks
    talk rate thingy: http://joind.in/3712

Mais conteúdo relacionado

Mais procurados

WebSockets, Unity3D, and Clojure
WebSockets, Unity3D, and ClojureWebSockets, Unity3D, and Clojure
WebSockets, Unity3D, and Clojure
Josh Glover
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
Hiroshi Nakamura
 

Mais procurados (20)

A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
Service Discovery for Continuous Delivery with Docker
Service Discovery for Continuous Delivery with DockerService Discovery for Continuous Delivery with Docker
Service Discovery for Continuous Delivery with Docker
 
aiohttp intro
aiohttp introaiohttp intro
aiohttp intro
 
How do I construct a python web server using this code? #import socket modul...
How do I construct a python web server using this code?  #import socket modul...How do I construct a python web server using this code?  #import socket modul...
How do I construct a python web server using this code? #import socket modul...
 
Java and the blockchain - introducing web3j
Java and the blockchain - introducing web3jJava and the blockchain - introducing web3j
Java and the blockchain - introducing web3j
 
Introduction to Nodejs
Introduction to NodejsIntroduction to Nodejs
Introduction to Nodejs
 
How to send gzipped requests with boto3
How to send gzipped requests with boto3How to send gzipped requests with boto3
How to send gzipped requests with boto3
 
NestJS
NestJSNestJS
NestJS
 
Node.js - A Quick Tour
Node.js - A Quick TourNode.js - A Quick Tour
Node.js - A Quick Tour
 
WebSockets, Unity3D, and Clojure
WebSockets, Unity3D, and ClojureWebSockets, Unity3D, and Clojure
WebSockets, Unity3D, and Clojure
 
Non-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.jsNon-blocking I/O, Event loops and node.js
Non-blocking I/O, Event loops and node.js
 
Securing Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp VaultSecuring Prometheus exporters using HashiCorp Vault
Securing Prometheus exporters using HashiCorp Vault
 
Rack Middleware
Rack MiddlewareRack Middleware
Rack Middleware
 
Creating an Arduino Web Server from scratch hardware and software
Creating an Arduino Web Server from scratch hardware and softwareCreating an Arduino Web Server from scratch hardware and software
Creating an Arduino Web Server from scratch hardware and software
 
Play Framework
Play FrameworkPlay Framework
Play Framework
 
Why async matters
Why async mattersWhy async matters
Why async matters
 
Ruby HTTP clients comparison
Ruby HTTP clients comparisonRuby HTTP clients comparison
Ruby HTTP clients comparison
 
From Ruby to Node.js
From Ruby to Node.jsFrom Ruby to Node.js
From Ruby to Node.js
 
Node.js introduction
Node.js introductionNode.js introduction
Node.js introduction
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 

Destaque

Real-time Web Application with Socket.IO, Node.js, and Redis
Real-time Web Application with Socket.IO, Node.js, and RedisReal-time Web Application with Socket.IO, Node.js, and Redis
Real-time Web Application with Socket.IO, Node.js, and Redis
York Tsai
 
Building notification system in NodeJS + Redis
Building notification system in NodeJS + RedisBuilding notification system in NodeJS + Redis
Building notification system in NodeJS + Redis
Le Duc
 
flowspec @ APF 2013
flowspec @ APF 2013flowspec @ APF 2013
flowspec @ APF 2013
Tom Paseka
 

Destaque (17)

Real-time Web Application with Socket.IO, Node.js, and Redis
Real-time Web Application with Socket.IO, Node.js, and RedisReal-time Web Application with Socket.IO, Node.js, and Redis
Real-time Web Application with Socket.IO, Node.js, and Redis
 
Building notification system in NodeJS + Redis
Building notification system in NodeJS + RedisBuilding notification system in NodeJS + Redis
Building notification system in NodeJS + Redis
 
Websocket + Redis pubsub
Websocket + Redis pubsubWebsocket + Redis pubsub
Websocket + Redis pubsub
 
Real Time Recommendations Using WebSockets and Redis - Ninad Divadkar, Inuit
Real Time Recommendations Using WebSockets and Redis - Ninad Divadkar, InuitReal Time Recommendations Using WebSockets and Redis - Ninad Divadkar, Inuit
Real Time Recommendations Using WebSockets and Redis - Ninad Divadkar, Inuit
 
Web in real time - technical project - socket.io
Web in real time - technical project - socket.ioWeb in real time - technical project - socket.io
Web in real time - technical project - socket.io
 
Web socket with php v2
Web socket with php v2Web socket with php v2
Web socket with php v2
 
Global Data Stream Network for Internet of Things
Global Data Stream Network for Internet of ThingsGlobal Data Stream Network for Internet of Things
Global Data Stream Network for Internet of Things
 
Streaming and Visualizing Data with D3.js
Streaming and Visualizing Data with D3.jsStreaming and Visualizing Data with D3.js
Streaming and Visualizing Data with D3.js
 
flowspec @ APF 2013
flowspec @ APF 2013flowspec @ APF 2013
flowspec @ APF 2013
 
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
Building web apps with node.js, socket.io, knockout.js and zombie.js - Codemo...
 
Real time web: is there a life without socket.io and node.js?
Real time web: is there a life without socket.io and node.js?Real time web: is there a life without socket.io and node.js?
Real time web: is there a life without socket.io and node.js?
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
 
RedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystemRedisConf 2016 - Redis usage and ecosystem
RedisConf 2016 - Redis usage and ecosystem
 
Nodejs and WebSockets
Nodejs and WebSocketsNodejs and WebSockets
Nodejs and WebSockets
 
Running Analytics at the Speed of Your Business
Running Analytics at the Speed of Your BusinessRunning Analytics at the Speed of Your Business
Running Analytics at the Speed of Your Business
 
Redis Networking Nerd Down: For Lovers of Packets and Jumbo Frames- John Bull...
Redis Networking Nerd Down: For Lovers of Packets and Jumbo Frames- John Bull...Redis Networking Nerd Down: For Lovers of Packets and Jumbo Frames- John Bull...
Redis Networking Nerd Down: For Lovers of Packets and Jumbo Frames- John Bull...
 
TDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.ioTDC2016POA | Trilha Web - Realtime applications com Socket.io
TDC2016POA | Trilha Web - Realtime applications com Socket.io
 

Semelhante a Going real time with Socket.io

A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
Tom Croucher
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
Tom Croucher
 
Java client socket-20070327
Java client socket-20070327Java client socket-20070327
Java client socket-20070327
Tsu-Fen Han
 

Semelhante a Going real time with Socket.io (20)

Node worshop Realtime - Socket.io
Node worshop Realtime - Socket.ioNode worshop Realtime - Socket.io
Node worshop Realtime - Socket.io
 
Socket.pptx
Socket.pptxSocket.pptx
Socket.pptx
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Os 2
Os 2Os 2
Os 2
 
A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...A language for the Internet: Why JavaScript and Node.js is right for Internet...
A language for the Internet: Why JavaScript and Node.js is right for Internet...
 
Arduino and the real time web
Arduino and the real time webArduino and the real time web
Arduino and the real time web
 
web3j Overview
web3j Overviewweb3j Overview
web3j Overview
 
WebSockets in JEE 7
WebSockets in JEE 7WebSockets in JEE 7
WebSockets in JEE 7
 
Get Real: Adventures in realtime web apps
Get Real: Adventures in realtime web appsGet Real: Adventures in realtime web apps
Get Real: Adventures in realtime web apps
 
How to build a chat application with react js, nodejs, and socket.io
How to build a chat application with react js, nodejs, and socket.ioHow to build a chat application with react js, nodejs, and socket.io
How to build a chat application with react js, nodejs, and socket.io
 
Speed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSocketsSpeed up your Web applications with HTML5 WebSockets
Speed up your Web applications with HTML5 WebSockets
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
 
Java client socket-20070327
Java client socket-20070327Java client socket-20070327
Java client socket-20070327
 
Socket.io v.0.8.3
Socket.io v.0.8.3Socket.io v.0.8.3
Socket.io v.0.8.3
 
Socket.io v.0.8.3
Socket.io v.0.8.3Socket.io v.0.8.3
Socket.io v.0.8.3
 
Socket Programming - nitish nagar
Socket Programming - nitish nagarSocket Programming - nitish nagar
Socket Programming - nitish nagar
 
Java 1
Java 1Java 1
Java 1
 
socket.io on SmartFx
socket.io on SmartFxsocket.io on SmartFx
socket.io on SmartFx
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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 2024The 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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe 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...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Going real time with Socket.io

Notas do Editor

  1. OMG YOU SEE MY SUPER SECRET HIDDEN PRESENTER SLIDE NOTES *shame* ;D\n
  2. so hi, i&amp;#x2019;m arnout kazemier i&amp;#x2019;m one of the socket.io team members. After becoming second solo in last years node knockout competition i finally managed to become first solo, overall and utility. I have been using node since the early days and i&amp;#x2019;m a all around performance / high availability geek.\n
  3. \n
  4. \n
  5. Socket.IO aims to make realtime apps possible in every browser and mobile device, blurring the differences between the different transport mechanisms. It&apos;s care-free realtime 100% in JavaScript.\n
  6. cross browser, and cross platform compatible\n
  7. Desktop\nInternet Explorer 5.5+, Safari 3+, Google Chrome 4+ ,Firefox 3+, Opera 10.61+\n\nMobile\niPhone Safari, iPod Safari, iPad Safari, Android WebKit, WebOs WebKit\n\n
  8. \n
  9. \n
  10. Big projects are using it, like Cloud 9 ide\n
  11. \n
  12. \n
  13. for connecting with a socket.io server out of node, this is actually also the client side code. but i&amp;#x2019;m not going to dive to deep in this.\n
  14. once you got socket.io installed all that is left to do is have it listen to a HTTP server.\n
  15. if you don&amp;#x2019;t have one, you can also supply it with number and we will generate one for you.\n
  16. Now that we have attached socket.io on a server we can start listening for events. \n
  17. The /socket.io/socket.io.js file is served by socket.io automatically. We ship a compatible client with the server so you are sure that your client side code is compatible with your socket.io server. But you can always just host the file your self\n
  18. \n
  19. \n
  20. Follows the node.js EventEmitter pattern\n
  21. These are used for lower level messaging. No fancy pancy abstractions on top of it\n
  22. Message flags are used to reduce messaging complexity but still give you great control over the process.\nThe .json flag is available both on the server and on the client\n
  23. To broadcast, simply add a broadcast flag to emit and send method calls. Broadcasting means sending a message to everyone else except for the socket that starts it.\n
  24. Sometimes certain messages can be dropped. Let&apos;s say you have an app that shows realtime tweets for the keyword bieber.\nIf a certain client is not ready to receive messages (because of network slowness or other issues, or because he&apos;s connected through long polling and is in the middle of a request-response cycle), if he doesn&apos;t receive ALL the tweets related to bieber your application won&apos;t suffer.\nIn that case, you might want to send those messages as volatile messages.\n\n
  25. Sometimes you want to put certain sockets in the same room, so that it&apos;s easy to broadcast to all of them together.\nThink of this as built-in channels for sockets. Sockets join and leave rooms in each socket.\n\n
  26. But sometimes you just want to broadcast to all connected clients, so instead of emitting to the socket object you call the emit function on io.sockets\n\n
  27. Sometimes you just want to be sure that a message reached the server\nSometimes, you might want to get a callback when the client confirmed the message reception.\nTo do this, simply pass a function as the last parameter of .send or .emit. What&apos;s more, when you use .emit, the acknowledgement is done by you, which means you can also pass data along:\n\n\n
  28. \n
  29. \n
  30. We start off with a handshake request, this allows the server to authenticate the connecting client, accepting or declining the connection. During this step we also store a snapshot of the headers and ip address.\n
  31. Once the handshake is accepted we return a connection id, accepted transports and some configuration options such the close timeout.\n
  32. after the handshake we start searching a available transport layer using feature detection\n
  33. Supported drafts: draft 76 and hybi 07-12\nBrowser supports: iOS, Safari 5, FireFox 6, Opera, Chrome.\n
  34. Requires Flash 10+ and a policy file server (we ship this) has a slow start up time but it does bidirectional communication. This transport is disabled by default on the server because of the slow upstart time.\n
  35. A IE only transport, it makes use of the ActiveX HTMLFile to create a forever loading iframe. The HTML allows this to work without showing any loading indicators.\n
  36. A IE only transport, it makes use of the ActiveX HTMLFile to create a forever loading iframe. The HTML allows this to work without showing any loading indicators.\n
  37. If everything else fails we can just use JSONP polling\n
  38. \n
  39. \n
  40. The hello world of a real time app, a chat box\n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. preview of the RedisStore\n
  47. \n
  48. \n