ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
pushing the web forward
                          socket.io
                       with


Friday, April 6, 12
who am i
                      a socket.io core developer
                      winner node knockout 2011
                      early node user since 0.1.3

                         founder observe.it
Friday, April 6, 12
github    @3rd-eden
                                   &
                                @3rdeden
                      twitter




Friday, April 6, 12
i the state of real-time
                       ii socket.io
                      iii socket.io next


Friday, April 6, 12
the state of real-time


Friday, April 6, 12
the past


Friday, April 6, 12
the past
           comet, polling and other methods to abuse the web



                                 can i has data




                      browser                     server

Friday, April 6, 12
the past
           comet, polling and other methods to abuse the web



                                    can i has data

                                nope, dun has dataz ;(




                      browser                            server

Friday, April 6, 12
the past
           comet, polling and other methods to abuse the web



                                     can i has data

                                 nope, dun has dataz ;(

                                can i has data pretty plx




                      browser                               server

Friday, April 6, 12
the past
           comet, polling and other methods to abuse the web



                                     can i has data

                                 nope, dun has dataz ;(

                                can i has data pretty plx

                                   yes, i has ur dataz




                      browser                               server

Friday, April 6, 12
the past
           comet, polling and other methods to abuse the web



                                     can i has data

                                 nope, dun has dataz ;(

                                can i has data pretty plx

                                   yes, i has ur dataz

                                   ohi can i has dataz


                      browser                               server

Friday, April 6, 12
the past
                                   used transport methods



                      XHR & JSONP polling
                      can be used cross domain, JSONP connections usually use
                      an iframe to post messages




Friday, April 6, 12
the past
                                   used transport methods



                      iFrame / HTMLFile streaming
                      HTMLFile is used to hide the loading indicators as the connection with server is
                      never closed so it can stream in new messages




Friday, April 6, 12
the past
                                   used transport methods



                      Plugins, Java, Flash, Silverlight
                      everybody has this awesome bloatware installed




Friday, April 6, 12
the past
                                  used transport methods



                      EventSource and multipart XHR
                      EventSource was actually implemented in opera 9 and combined with XHR
                      multi-part from ?refox we got two good streaming read only solutions




Friday, April 6, 12
the past
                                   used transport methods



                      window.name
                      used to create cross-domain browser transport, ?rst used in Dojo




Friday, April 6, 12
HTML5   the future


Friday, April 6, 12
websockets
                      the good parts ?


Friday, April 6, 12
? the good parts ?

                           Bidirectional




Friday, April 6, 12
? the good parts ?

                           Bidirectional
                            Persistent




Friday, April 6, 12
? the good parts ?

                           Bidirectional
                            Persistent
                           Light weight




Friday, April 6, 12
? the good parts ?

                           Bidirectional
                            Persistent
                           Light weight
                            Blazing fast




Friday, April 6, 12
websockets
                      the bad parts ?


Friday, April 6, 12
? the bad parts ?

                      No full browser coverage




Friday, April 6, 12
? the bad parts ?

                      No full browser coverage
                           Browser issues




Friday, April 6, 12
? the bad parts ?

                      No full browser coverage
                           Browser issues
                       Connection blockage




Friday, April 6, 12
? the bad parts ?

                         No full browser coverage
                              Browser issues
                           Connection blockage
                      Bad server HTTP proxy support




Friday, April 6, 12
? the bad parts ?
                            no full browser support yet



                      16+         8+       11.6+          5+      10+
                      RFC         RFC        HIXIE        HIXIE   RFC




Friday, April 6, 12
? the bad parts ?
                         browser issues




Friday, April 6, 12
? the bad parts ?
                                          browser issues


                      Usage or detecting a HTTP proxy
                      (AutoProxyDiscovery) crashes < Safari 5.1.4
                      and Mobile Webkit
                      your fucked or use user agent snif?ng




Friday, April 6, 12
? the bad parts ?
                                           browser issues



                      Writing to a closed WebSocket connection
                      can crash the browser & tabs
                      check for connection state with a setTimeout




Friday, April 6, 12
? the bad parts ?
                                            browser issues



                      3G connections can crash WebSocket
                      fucked, again, disable websockets on portable devices, until netinfo API is
                      supported




Friday, April 6, 12
? the bad parts ?
                                             browser issues


                      Pressing ESC in Firefox will drop the
                      established connection. Even after the page
                      has fully loaded.
                      capture the event early and try to cancel it




Friday, April 6, 12
? the bad parts ?
                                          browser issues



                      Sending invalid UTF-8 drops the connection
                      escape & encodeURI your data




Friday, April 6, 12
? the bad parts ?
                                            browser issues



                      TCP socket leaks in Chrome if you get
                      disconnected from the internet
                      you¡¯re fucked, no way to detect




Friday, April 6, 12
? the bad parts ?
                                            browser issues



                      Firefox doesn¡¯t connect to ws:// from a secure
                      https page.
                      can be detected <3!




Friday, April 6, 12
? the bad parts ?
                                 connection blockage




                                       ?rewall
                      browser         anti-virus       server
                                       plugins
Friday, April 6, 12
? the bad parts ?
                                        connection blockage


                       3% of all requests on port 4000
                       were blocked
                       out of the unique 100k connections tested




                      enterprise proxies usually block
                      everything except port 80,443,843
                      and virus scanners usually target port 80 for scanning & blocking



Friday, April 6, 12
Friday, April 6, 12
? the bad parts ?
                                 connection blockage


                      to minimize the impact use SSL by
                      default

                      if this is not possible fallback from
                      different ports

                          4000          843          80

Friday, April 6, 12
go hybrid


Friday, April 6, 12
socket.io


Friday, April 6, 12
socket.io
            Full hybrid real time server
            blurring the differences between transport methods


            100% JavaScript
            powered by Node.js <3, npm install socket.io and your done, but it¡¯s also ported
            to different languages


            Open Souce MIT license
            github.com/LearnBoost/socket.io(-client)




Friday, April 6, 12
socket.io

                        Comes with tons of features
                      encoding, multiplexing, heartbeats, authentication, scaling




Friday, April 6, 12
socket.io
                      high performance, lower is better


                                     Google Chrome 16
                                            x




                                                          ws

Friday, April 6, 12
socket.io
                      autobahn testsuite




                                           ws

Friday, April 6, 12
socket.io
                                how does it work




                      visitor                      socket.io


Friday, April 6, 12
socket.io
                                how does it work




                                 handshake request
                      visitor                        socket.io


Friday, April 6, 12
socket.io
                                      how does it work


                                accepted transports, connection id and
                                          con?g is returned




                                        handshake accepted
                      visitor                                        socket.io


Friday, April 6, 12
socket.io
                                how does it work



                                 feature detection is used to ?nd a
                                 working transport layer




                      visitor                                  socket.io


Friday, April 6, 12
socket.io
                        supported transport methods

                      Web Socket   HIXIE 75/76 HIBI




Friday, April 6, 12
socket.io
                         supported transport methods

                      Web Socket     HIXIE 75/76 HIBI




                      Flash Socket   FLASH 10+




Friday, April 6, 12
socket.io
                         supported transport methods

                      Web Socket      HIXIE 75/76 HIBI




                      Flash Socket    FLASH 10+




                      HTML File   IE 5.5+




Friday, April 6, 12
socket.io
                         supported transport methods

                      Web Socket      HIXIE 75/76 HIBI




                      Flash Socket    FLASH 10+




                      HTML File   IE 5.5+




                      XHR Polling     IE6,FF,OPERA,WEBKIT




Friday, April 6, 12
socket.io
                         supported transport methods

                      Web Socket      HIXIE 75/76 HIBI




                      Flash Socket    FLASH 10+




                      HTML File   IE 5.5+




                      XHR Polling     IE6,FF,OPERA,WEBKIT




                      JSONP Polling         EVERYONE



Friday, April 6, 12
socket.io
                                 how does it work




                                  real time connection is
                                established with the server
                      visitor       using the transport       socket.io


Friday, April 6, 12
socket.io
                                 how does it work


                                 heartbeats are send to
                                ensure proper connection




                      visitor                              socket.io


Friday, April 6, 12
live
                      CODING




Friday, April 6, 12
socket.io next
                            a.k.a


              engine.io & websocket.io

Friday, April 6, 12
engine.io & websocket.io
            Transport upgrading instead of downgrading
            faster connection times, less prone to errors




Friday, April 6, 12
engine.io & websocket.io
            Transport upgrading instead of downgrading
            faster connection times, less prone to errors


            Smaller because theres no sugar on top
            and transports can be lazy loaded




Friday, April 6, 12
engine.io & websocket.io
            Transport upgrading instead of downgrading
            faster connection times, less prone to errors


            Smaller because theres no sugar on top
            and transports can be lazy loaded


            WebSocket only interface
            for those of your who think websockets are good enough, but you really shouldn¡¯t




Friday, April 6, 12
Q&Awill be answered in real time




                      talk nerdy to me
Friday, April 6, 12
github    @3rd-eden
                                   &
                                @3rdeden
                      twitter




Friday, April 6, 12

More Related Content

Viewers also liked (7)

Going real time with Socket.io
Going real time with Socket.ioGoing real time with Socket.io
Going real time with Socket.io
Arnout Kazemier
?
Web Sockets
Web SocketsWeb Sockets
Web Sockets
Paul Fryer
?
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
?
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
Redis Labs
?
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏíÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
Caesar Chi
?
Transportation management system
Transportation management systemTransportation management system
Transportation management system
Abhay Korat
?
Going real time with Socket.io
Going real time with Socket.ioGoing real time with Socket.io
Going real time with Socket.io
Arnout Kazemier
?
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
?
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
Redis Labs
?
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏíÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
ÈçºÎÌá•N¼¼ÐgÁ¦ - …¢Åc¼¼ÐgÉçȺÖ®½›òž·ÖÏí
Caesar Chi
?
Transportation management system
Transportation management systemTransportation management system
Transportation management system
Abhay Korat
?

Similar to Web5 pushing the web forward.apr (11)

Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012
Giuseppe Maxia
?
Solr, Lucene and Hadoop @ Etsy
Solr, Lucene and Hadoop @ EtsySolr, Lucene and Hadoop @ Etsy
Solr, Lucene and Hadoop @ Etsy
lucenerevolution
?
Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012
Michele Orru
?
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Boris Mann
?
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensed
zznate
?
CPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPANCPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPAN
Mike Friedman
?
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and Ripple
Sean Cribbs
?
Functional Web Apps with WebMachine Framework - Mikhail Bortnyk
Functional Web Apps with WebMachine Framework - Mikhail BortnykFunctional Web Apps with WebMachine Framework - Mikhail Bortnyk
Functional Web Apps with WebMachine Framework - Mikhail Bortnyk
Ruby Meditation
?
Functional Web Apps with WebMachine Framework
Functional Web Apps with WebMachine FrameworkFunctional Web Apps with WebMachine Framework
Functional Web Apps with WebMachine Framework
Amoniac O?
?
Cors
CorsCors
Cors
s4parke
?
Hadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-TenancyHadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-Tenancy
Treasure Data, Inc.
?
Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012Lightning talks percona live mysql_2012
Lightning talks percona live mysql_2012
Giuseppe Maxia
?
Solr, Lucene and Hadoop @ Etsy
Solr, Lucene and Hadoop @ EtsySolr, Lucene and Hadoop @ Etsy
Solr, Lucene and Hadoop @ Etsy
lucenerevolution
?
Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012Advances in BeEF - AthCon2012
Advances in BeEF - AthCon2012
Michele Orru
?
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Practical Semantic Web and Why You Should Care - DrupalCon DC 2009
Boris Mann
?
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensed
zznate
?
CPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPANCPANci: Continuous Integration for CPAN
CPANci: Continuous Integration for CPAN
Mike Friedman
?
Introducing Riak and Ripple
Introducing Riak and RippleIntroducing Riak and Ripple
Introducing Riak and Ripple
Sean Cribbs
?
Functional Web Apps with WebMachine Framework - Mikhail Bortnyk
Functional Web Apps with WebMachine Framework - Mikhail BortnykFunctional Web Apps with WebMachine Framework - Mikhail Bortnyk
Functional Web Apps with WebMachine Framework - Mikhail Bortnyk
Ruby Meditation
?
Functional Web Apps with WebMachine Framework
Functional Web Apps with WebMachine FrameworkFunctional Web Apps with WebMachine Framework
Functional Web Apps with WebMachine Framework
Amoniac O?
?
Hadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-TenancyHadoop meets Cloud with Multi-Tenancy
Hadoop meets Cloud with Multi-Tenancy
Treasure Data, Inc.
?

Recently uploaded (20)

A Framework for Model-Driven Digital Twin Engineering
A Framework for Model-Driven Digital Twin EngineeringA Framework for Model-Driven Digital Twin Engineering
A Framework for Model-Driven Digital Twin Engineering
Daniel Lehner
?
Unlock AI Creativity: Image Generation with DALL¡¤E
Unlock AI Creativity: Image Generation with DALL¡¤EUnlock AI Creativity: Image Generation with DALL¡¤E
Unlock AI Creativity: Image Generation with DALL¡¤E
Expeed Software
?
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Jonathan Bowen
?
Backstage Software Templates for Java Developers
Backstage Software Templates for Java DevelopersBackstage Software Templates for Java Developers
Backstage Software Templates for Java Developers
Markus Eisele
?
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
Tsuyoshi Hirayama
?
MIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND Revenue Release Quarter 4 2024 - Finacial PresentationMIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND CTI
?
Revolutionizing-Government-Communication-The-OSWAN-Success-Story
Revolutionizing-Government-Communication-The-OSWAN-Success-StoryRevolutionizing-Government-Communication-The-OSWAN-Success-Story
Revolutionizing-Government-Communication-The-OSWAN-Success-Story
ssuser52ad5e
?
DevNexus - Building 10x Development Organizations.pdf
DevNexus - Building 10x Development Organizations.pdfDevNexus - Building 10x Development Organizations.pdf
DevNexus - Building 10x Development Organizations.pdf
Justin Reock
?
EaseUS Partition Master Crack 2025 + Serial Key
EaseUS Partition Master Crack 2025 + Serial KeyEaseUS Partition Master Crack 2025 + Serial Key
EaseUS Partition Master Crack 2025 + Serial Key
kherorpacca127
?
BoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is DynamicBoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is Dynamic
Ortus Solutions, Corp
?
Gojek Clone Multi-Service Super App.pptx
Gojek Clone Multi-Service Super App.pptxGojek Clone Multi-Service Super App.pptx
Gojek Clone Multi-Service Super App.pptx
V3cube
?
Build with AI on Google Cloud Session #4
Build with AI on Google Cloud Session #4Build with AI on Google Cloud Session #4
Build with AI on Google Cloud Session #4
Margaret Maynard-Reid
?
1.1. Evolution-and-Scope-of-Business-Analytics.pptx
1.1. Evolution-and-Scope-of-Business-Analytics.pptx1.1. Evolution-and-Scope-of-Business-Analytics.pptx
1.1. Evolution-and-Scope-of-Business-Analytics.pptx
Jitendra Tomar
?
Transform Your Future with Front-End Development Training
Transform Your Future with Front-End Development TrainingTransform Your Future with Front-End Development Training
Transform Your Future with Front-End Development Training
Vtechlabs
?
UiPath Automation Developer Associate Training Series 2025 - Session 1
UiPath Automation Developer Associate Training Series 2025 - Session 1UiPath Automation Developer Associate Training Series 2025 - Session 1
UiPath Automation Developer Associate Training Series 2025 - Session 1
DianaGray10
?
Wondershare Dr.Fone Crack Free Download 2025
Wondershare Dr.Fone Crack Free Download 2025Wondershare Dr.Fone Crack Free Download 2025
Wondershare Dr.Fone Crack Free Download 2025
maharajput103
?
Technology use over time and its impact on consumers and businesses.pptx
Technology use over time and its impact on consumers and businesses.pptxTechnology use over time and its impact on consumers and businesses.pptx
Technology use over time and its impact on consumers and businesses.pptx
kaylagaze
?
World Information Architecture Day 2025 - UX at a Crossroads
World Information Architecture Day 2025 - UX at a CrossroadsWorld Information Architecture Day 2025 - UX at a Crossroads
World Information Architecture Day 2025 - UX at a Crossroads
Joshua Randall
?
Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Stronger Together: Combining Data Quality and Governance for Confident AI & A...Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Precisely
?
UiPath Agentic Automation Capabilities and Opportunities
UiPath Agentic Automation Capabilities and OpportunitiesUiPath Agentic Automation Capabilities and Opportunities
UiPath Agentic Automation Capabilities and Opportunities
DianaGray10
?
A Framework for Model-Driven Digital Twin Engineering
A Framework for Model-Driven Digital Twin EngineeringA Framework for Model-Driven Digital Twin Engineering
A Framework for Model-Driven Digital Twin Engineering
Daniel Lehner
?
Unlock AI Creativity: Image Generation with DALL¡¤E
Unlock AI Creativity: Image Generation with DALL¡¤EUnlock AI Creativity: Image Generation with DALL¡¤E
Unlock AI Creativity: Image Generation with DALL¡¤E
Expeed Software
?
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Formal Methods: Whence and Whither? [Martin Fr?nzle Festkolloquium, 2025]
Jonathan Bowen
?
Backstage Software Templates for Java Developers
Backstage Software Templates for Java DevelopersBackstage Software Templates for Java Developers
Backstage Software Templates for Java Developers
Markus Eisele
?
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
DAO UTokyo 2025 DLT mass adoption case studies IBM Tsuyoshi Hirayama (ƽɽÒã)
Tsuyoshi Hirayama
?
MIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND Revenue Release Quarter 4 2024 - Finacial PresentationMIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND Revenue Release Quarter 4 2024 - Finacial Presentation
MIND CTI
?
Revolutionizing-Government-Communication-The-OSWAN-Success-Story
Revolutionizing-Government-Communication-The-OSWAN-Success-StoryRevolutionizing-Government-Communication-The-OSWAN-Success-Story
Revolutionizing-Government-Communication-The-OSWAN-Success-Story
ssuser52ad5e
?
DevNexus - Building 10x Development Organizations.pdf
DevNexus - Building 10x Development Organizations.pdfDevNexus - Building 10x Development Organizations.pdf
DevNexus - Building 10x Development Organizations.pdf
Justin Reock
?
EaseUS Partition Master Crack 2025 + Serial Key
EaseUS Partition Master Crack 2025 + Serial KeyEaseUS Partition Master Crack 2025 + Serial Key
EaseUS Partition Master Crack 2025 + Serial Key
kherorpacca127
?
BoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is DynamicBoxLang JVM Language : The Future is Dynamic
BoxLang JVM Language : The Future is Dynamic
Ortus Solutions, Corp
?
Gojek Clone Multi-Service Super App.pptx
Gojek Clone Multi-Service Super App.pptxGojek Clone Multi-Service Super App.pptx
Gojek Clone Multi-Service Super App.pptx
V3cube
?
Build with AI on Google Cloud Session #4
Build with AI on Google Cloud Session #4Build with AI on Google Cloud Session #4
Build with AI on Google Cloud Session #4
Margaret Maynard-Reid
?
1.1. Evolution-and-Scope-of-Business-Analytics.pptx
1.1. Evolution-and-Scope-of-Business-Analytics.pptx1.1. Evolution-and-Scope-of-Business-Analytics.pptx
1.1. Evolution-and-Scope-of-Business-Analytics.pptx
Jitendra Tomar
?
Transform Your Future with Front-End Development Training
Transform Your Future with Front-End Development TrainingTransform Your Future with Front-End Development Training
Transform Your Future with Front-End Development Training
Vtechlabs
?
UiPath Automation Developer Associate Training Series 2025 - Session 1
UiPath Automation Developer Associate Training Series 2025 - Session 1UiPath Automation Developer Associate Training Series 2025 - Session 1
UiPath Automation Developer Associate Training Series 2025 - Session 1
DianaGray10
?
Wondershare Dr.Fone Crack Free Download 2025
Wondershare Dr.Fone Crack Free Download 2025Wondershare Dr.Fone Crack Free Download 2025
Wondershare Dr.Fone Crack Free Download 2025
maharajput103
?
Technology use over time and its impact on consumers and businesses.pptx
Technology use over time and its impact on consumers and businesses.pptxTechnology use over time and its impact on consumers and businesses.pptx
Technology use over time and its impact on consumers and businesses.pptx
kaylagaze
?
World Information Architecture Day 2025 - UX at a Crossroads
World Information Architecture Day 2025 - UX at a CrossroadsWorld Information Architecture Day 2025 - UX at a Crossroads
World Information Architecture Day 2025 - UX at a Crossroads
Joshua Randall
?
Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Stronger Together: Combining Data Quality and Governance for Confident AI & A...Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Stronger Together: Combining Data Quality and Governance for Confident AI & A...
Precisely
?
UiPath Agentic Automation Capabilities and Opportunities
UiPath Agentic Automation Capabilities and OpportunitiesUiPath Agentic Automation Capabilities and Opportunities
UiPath Agentic Automation Capabilities and Opportunities
DianaGray10
?

Web5 pushing the web forward.apr

  • 1. pushing the web forward socket.io with Friday, April 6, 12
  • 2. who am i a socket.io core developer winner node knockout 2011 early node user since 0.1.3 founder observe.it Friday, April 6, 12
  • 3. github @3rd-eden & @3rdeden twitter Friday, April 6, 12
  • 4. i the state of real-time ii socket.io iii socket.io next Friday, April 6, 12
  • 5. the state of real-time Friday, April 6, 12
  • 7. the past comet, polling and other methods to abuse the web can i has data browser server Friday, April 6, 12
  • 8. the past comet, polling and other methods to abuse the web can i has data nope, dun has dataz ;( browser server Friday, April 6, 12
  • 9. the past comet, polling and other methods to abuse the web can i has data nope, dun has dataz ;( can i has data pretty plx browser server Friday, April 6, 12
  • 10. the past comet, polling and other methods to abuse the web can i has data nope, dun has dataz ;( can i has data pretty plx yes, i has ur dataz browser server Friday, April 6, 12
  • 11. the past comet, polling and other methods to abuse the web can i has data nope, dun has dataz ;( can i has data pretty plx yes, i has ur dataz ohi can i has dataz browser server Friday, April 6, 12
  • 12. the past used transport methods XHR & JSONP polling can be used cross domain, JSONP connections usually use an iframe to post messages Friday, April 6, 12
  • 13. the past used transport methods iFrame / HTMLFile streaming HTMLFile is used to hide the loading indicators as the connection with server is never closed so it can stream in new messages Friday, April 6, 12
  • 14. the past used transport methods Plugins, Java, Flash, Silverlight everybody has this awesome bloatware installed Friday, April 6, 12
  • 15. the past used transport methods EventSource and multipart XHR EventSource was actually implemented in opera 9 and combined with XHR multi-part from ?refox we got two good streaming read only solutions Friday, April 6, 12
  • 16. the past used transport methods window.name used to create cross-domain browser transport, ?rst used in Dojo Friday, April 6, 12
  • 17. HTML5 the future Friday, April 6, 12
  • 18. websockets the good parts ? Friday, April 6, 12
  • 19. ? the good parts ? Bidirectional Friday, April 6, 12
  • 20. ? the good parts ? Bidirectional Persistent Friday, April 6, 12
  • 21. ? the good parts ? Bidirectional Persistent Light weight Friday, April 6, 12
  • 22. ? the good parts ? Bidirectional Persistent Light weight Blazing fast Friday, April 6, 12
  • 23. websockets the bad parts ? Friday, April 6, 12
  • 24. ? the bad parts ? No full browser coverage Friday, April 6, 12
  • 25. ? the bad parts ? No full browser coverage Browser issues Friday, April 6, 12
  • 26. ? the bad parts ? No full browser coverage Browser issues Connection blockage Friday, April 6, 12
  • 27. ? the bad parts ? No full browser coverage Browser issues Connection blockage Bad server HTTP proxy support Friday, April 6, 12
  • 28. ? the bad parts ? no full browser support yet 16+ 8+ 11.6+ 5+ 10+ RFC RFC HIXIE HIXIE RFC Friday, April 6, 12
  • 29. ? the bad parts ? browser issues Friday, April 6, 12
  • 30. ? the bad parts ? browser issues Usage or detecting a HTTP proxy (AutoProxyDiscovery) crashes < Safari 5.1.4 and Mobile Webkit your fucked or use user agent snif?ng Friday, April 6, 12
  • 31. ? the bad parts ? browser issues Writing to a closed WebSocket connection can crash the browser & tabs check for connection state with a setTimeout Friday, April 6, 12
  • 32. ? the bad parts ? browser issues 3G connections can crash WebSocket fucked, again, disable websockets on portable devices, until netinfo API is supported Friday, April 6, 12
  • 33. ? the bad parts ? browser issues Pressing ESC in Firefox will drop the established connection. Even after the page has fully loaded. capture the event early and try to cancel it Friday, April 6, 12
  • 34. ? the bad parts ? browser issues Sending invalid UTF-8 drops the connection escape & encodeURI your data Friday, April 6, 12
  • 35. ? the bad parts ? browser issues TCP socket leaks in Chrome if you get disconnected from the internet you¡¯re fucked, no way to detect Friday, April 6, 12
  • 36. ? the bad parts ? browser issues Firefox doesn¡¯t connect to ws:// from a secure https page. can be detected <3! Friday, April 6, 12
  • 37. ? the bad parts ? connection blockage ?rewall browser anti-virus server plugins Friday, April 6, 12
  • 38. ? the bad parts ? connection blockage 3% of all requests on port 4000 were blocked out of the unique 100k connections tested enterprise proxies usually block everything except port 80,443,843 and virus scanners usually target port 80 for scanning & blocking Friday, April 6, 12
  • 40. ? the bad parts ? connection blockage to minimize the impact use SSL by default if this is not possible fallback from different ports 4000 843 80 Friday, April 6, 12
  • 43. socket.io Full hybrid real time server blurring the differences between transport methods 100% JavaScript powered by Node.js <3, npm install socket.io and your done, but it¡¯s also ported to different languages Open Souce MIT license github.com/LearnBoost/socket.io(-client) Friday, April 6, 12
  • 44. socket.io Comes with tons of features encoding, multiplexing, heartbeats, authentication, scaling Friday, April 6, 12
  • 45. socket.io high performance, lower is better Google Chrome 16 x ws Friday, April 6, 12
  • 46. socket.io autobahn testsuite ws Friday, April 6, 12
  • 47. socket.io how does it work visitor socket.io Friday, April 6, 12
  • 48. socket.io how does it work handshake request visitor socket.io Friday, April 6, 12
  • 49. socket.io how does it work accepted transports, connection id and con?g is returned handshake accepted visitor socket.io Friday, April 6, 12
  • 50. socket.io how does it work feature detection is used to ?nd a working transport layer visitor socket.io Friday, April 6, 12
  • 51. socket.io supported transport methods Web Socket HIXIE 75/76 HIBI Friday, April 6, 12
  • 52. socket.io supported transport methods Web Socket HIXIE 75/76 HIBI Flash Socket FLASH 10+ Friday, April 6, 12
  • 53. socket.io supported transport methods Web Socket HIXIE 75/76 HIBI Flash Socket FLASH 10+ HTML File IE 5.5+ Friday, April 6, 12
  • 54. socket.io supported transport methods Web Socket HIXIE 75/76 HIBI Flash Socket FLASH 10+ HTML File IE 5.5+ XHR Polling IE6,FF,OPERA,WEBKIT Friday, April 6, 12
  • 55. socket.io supported transport methods Web Socket HIXIE 75/76 HIBI Flash Socket FLASH 10+ HTML File IE 5.5+ XHR Polling IE6,FF,OPERA,WEBKIT JSONP Polling EVERYONE Friday, April 6, 12
  • 56. socket.io how does it work real time connection is established with the server visitor using the transport socket.io Friday, April 6, 12
  • 57. socket.io how does it work heartbeats are send to ensure proper connection visitor socket.io Friday, April 6, 12
  • 58. live CODING Friday, April 6, 12
  • 59. socket.io next a.k.a engine.io & websocket.io Friday, April 6, 12
  • 60. engine.io & websocket.io Transport upgrading instead of downgrading faster connection times, less prone to errors Friday, April 6, 12
  • 61. engine.io & websocket.io Transport upgrading instead of downgrading faster connection times, less prone to errors Smaller because theres no sugar on top and transports can be lazy loaded Friday, April 6, 12
  • 62. engine.io & websocket.io Transport upgrading instead of downgrading faster connection times, less prone to errors Smaller because theres no sugar on top and transports can be lazy loaded WebSocket only interface for those of your who think websockets are good enough, but you really shouldn¡¯t Friday, April 6, 12
  • 63. Q&Awill be answered in real time talk nerdy to me Friday, April 6, 12
  • 64. github @3rd-eden & @3rdeden twitter Friday, April 6, 12