SlideShare a Scribd company logo
ITCamp 2012 sponsors                                                       Architecture &
                                                                           Best Practices




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Real-time web and
         Web Sockets in Windows 8
                              Florin Cardașim, Endava,
                                    twitter/@cardasim



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Agenda                                                                        Architecture &
                                                                              Best Practices




    Real-time web           SSE, WebSockets                                   Q&A




               Comet/long polling                         WebSockets in
                                                          ASP.NET and WCF

@   itcampro   # itcamp12      Premium conference on Microsoft technologies
Real-Time Web                                                              Architecture &
                                                                           Best Practices


    •   Monitoring/dashboards
    •   Sensor/RFID Tracking
    •   Social networking, Instant messaging
    •   Collaboration tools (Google Docs)
    •   Online gaming (Quake2 in the browser??!!)
    •   …




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Implementing Real-Time Web                                                 Architecture &
                                                                           Best Practices


•   Flash/silverlight/javafx
•   Ajax polling
•   Comet/long polling/http streaming …
•   … other DoS techniques 

• Server-sent events
• Web sockets



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Polling                                                                       Architecture &
                                                                              Best Practices

    Browser                 connect                                 Server
                            no message
                            connect
                            no message
                                                                     event
                            connect
                            event
                             connect
                             no message
                            connect
                             no message                               event
                             connect
                              event


@   itcampro   # itcamp12      Premium conference on Microsoft technologies
Architecture &
Polling                                                                    Best Practices




• No real-time user experience
• Wasted bandwidth, most requests return
  no data
• Frequent polling determine high server
  loads




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Comet/Long Polling                                                           Architecture &
                                                                             Best Practices


     Browser                                                      Server
                            connect
                                                  wait
                                                                    event
                             event
                            connect
                                                  wait



                                                                     event
                             event
                            connect
                                                  wait


@   itcampro   # itcamp12     Premium conference on Microsoft technologies
Comet/Long Polling                                                         Architecture &
                                                                           Best Practices



• Real-time user experience

• High pressure on server memory, bandwidth,
  threads/processes


• DEMO



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Html5 Server-Sent Events                                                       Architecture &
                                                                               Best Practices

     Browser                                                          Server
                   open event stream
      <EventSource>

                              event                                       event
               onmessage
                                                                          event
               onmessage      event
                                                                          event
               onmessage      event




@   itcampro     # itcamp12     Premium conference on Microsoft technologies
Html5 Server-Sent Events
                                                                           Architecture &
                                                                           Best Practices


• Simulates a server push channel over HTTP
• Unidirectional, from server to browser
• Standardizes some form of Comet/HTTP
  streaming

• New html tag: <EventSource>
• New mime type: text/event-stream



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Html5 WebSocket
                                                                             Architecture &
                                                                             Best Practices

                   GET /text HTTP/1.1
Client/            Host: www.websocket.org                                     Server
Browser            Upgrade: WebSocket
                   Connection: Upgrade ...

                   HTTP/1.1 101 Switching Protocols
                   Upgrade: WebSocket
                   Connection: Upgrade ...




                        TCP comm channel
                     Full duplex, bidirectional




@   itcampro   # itcamp12     Premium conference on Microsoft technologies
Html5 WebSocket
                                                                           Architecture &
                                                                           Best Practices


•   Full duplex, bidirectional
•   Single TCP socket
•   Standard ports: http/80, https/443
•   In & outside of browser
•   Bandwidth savings, enhanced scalability




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
WebSocket vs Polling Bandwidth
                                                                            Architecture &
                                                                            Best Practices




                http://websocket.org/quantum.html

@   itcampro   # itcamp12    Premium conference on Microsoft technologies
WebSocket – The Protocol                                                        Architecture &
                                                                                Best Practices




       OpCode (4 bit)   Meaning/frame type
       0                Continuation
       1                Text (UTF-8)
       2                Binary
       3-7              Reserved for further non-control frames
       8                Connection Close
       9                Ping
       10               Pong
       11-15            Reserved for further non-control frames


@   itcampro   # itcamp12        Premium conference on Microsoft technologies
WebSocket – The Java Script API
                                                                           Architecture &
                                                                           Best Practices




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Browser Support
                                                                           Architecture &
                                                                           Best Practices




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Server Side Support                                                        Architecture &
                                                                           Best Practices



•   Socket.IO (node.js)
•   Atmosphere, Jetty (Java)
•   Ruby/EventMachine
•   Python/Twisted
•   Windows 8, IIS 8, ASP.NET-WCF 4.5
•   … others




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
WebSockets in Windows 8
                                                                                  Architecture &
                                                                                  Best Practices


                                    Your code!




                      WCF high level
                       abstractions
                                                             ASP.NET high level
          WCF WebSocket transport
                                                               abstractions

                           System.Net.WebSockets

                                                     ASP.NET HTTP Pipeline

                HttpListener                                 IIS (iiswsock.dll)

                                       http.sys



@   itcampro   # itcamp12        Premium conference on Microsoft technologies
WebSockets in Windows 8                                                    Architecture &
                                                                           Best Practices



• DEMO
    •   IE 10
    •   Windows 8, IIS 8
    •   ASP.NET 4.5
    •   WCF 4.5




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
WebSockets in ASP.NET
                                                                             Architecture &
                                                                             Best Practices



Developer “agrees” to upgrade to a WebSocket
connection
    HttpContext.Current.AcceptWebSocketRequest(
        Func<AspNetWebSocketContext,Task> myWebSocketApp,
        AspNetWebSocketOptions optionalSetupInfo
    );

Asynchronously receive and send messages
    public async Task MyWebSocketApp(AspNetWebSocketContext context)
    {
        var socket = context.WebSocket;
        …
        var input = await socket.ReceiveAsync(buffer);
        …
        await socket.SendAsync(outputBuffer,…params…);
    }


@   itcampro   # itcamp12     Premium conference on Microsoft technologies
WebSockets in WCF                                                          Architecture &
                                                                           Best Practices


• WebSocket transport for WCF
• Traditional WCF running over WebSocket
  connections




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Concerns – Network Topology                                                Architecture &
                                                                           Best Practices



• NAT, Firewall
    – NOT an issue, standard ports: http/80, https/443


• Proxy (forward, reverse, transparent etc)
    – It depends, but generally an issue
    – CONNECT (tunnel/SSL)


• Load Balancer
    – TCP (Layer-4) – no issue
    – HTTP (Layer-7) – may require explicit configuration


@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Concerns – Adoption                                                        Architecture &
                                                                           Best Practices


• Use frameworks:
  – Socket.IO
    (node.js)
  – Atmosphere
    (java)
  – SignalR
   (.net)




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
References                                                                 Architecture &
                                                                           Best Practices


•   http://www.websocket.org
•   http://www.kaazing.me
•   http://www.buildwindows.com
•   http://ww.infoq.com/websocket
•   http://socket.io




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Other WebSockets sessions @ITCamp                                          Architecture &
                                                                           Best Practices


• Building modern web sites with ASP .Net
  Web API, WebSockets and SignalR
     – 14:45
     – Alessandro Pilotti




@   itcampro   # itcamp12   Premium conference on Microsoft technologies
Q&A
     How will WebSocket impact the
     existing WEB programming?



@   itcampro   # itcamp12   Premium conference on Microsoft technologies
I’d love to hear you feedback –
       please fill the evaluation forms

                            Thank you!

                               Florin Cardașim, Endava,
                                     twitter/@cardasim

@   itcampro   # itcamp12    Premium conference on Microsoft technologies

More Related Content

What's hot

9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2Digicomp Academy AG
 
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012ITCamp
 
Java Microservices HJUG
Java Microservices HJUGJava Microservices HJUG
Java Microservices HJUGLana Kalashnyk
 
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...Spiffy
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11영호 라
 
BayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes EverythingBayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes Everything
CloudPassage
 

What's hot (6)

9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2
 
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012
ITCamp 2012 - Tudor Damian - Private Cloud with Hyper-V 3 and SCVMM 2012
 
Java Microservices HJUG
Java Microservices HJUGJava Microservices HJUG
Java Microservices HJUG
 
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...
MS TechDays 2011 - SCVMM 2012 Building of Private Clouds and Federation to th...
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11
 
BayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes EverythingBayThreat Why The Cloud Changes Everything
BayThreat Why The Cloud Changes Everything
 

Similar to ITCamp 2012 - Florin Cardasim - HTML5 web-sockets

ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimFlorin Cardasim
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSITCamp
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Radu Vunvulea
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Enea Gabriel
 
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...ITCamp
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp
 
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti
 
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp
 
Io t data streaming
Io t data streamingIo t data streaming
Io t data streaming
ratthaslip ranokphanuwat
 
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp
 
Building single page, modular html5 applications for PC and Mobile
Building single page, modular html5 applications for PC and MobileBuilding single page, modular html5 applications for PC and Mobile
Building single page, modular html5 applications for PC and Mobile
Lorant Domokos
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
Veselin Pizurica
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
Mihai Coscodan
 
Large scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with UmbracoLarge scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with Umbraco
Warren Buckley
 
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
Brian Pulito
 
Monitoring IAAS & PAAS Solutions
Monitoring IAAS & PAAS SolutionsMonitoring IAAS & PAAS Solutions
Monitoring IAAS & PAAS SolutionsColloquium
 
Techdays 2011 - Things I will remember
Techdays 2011 - Things I will rememberTechdays 2011 - Things I will remember
Techdays 2011 - Things I will remember
Alexander Vanwynsberghe
 
ITCamp 2011 - Mihai Tataran - Migrating to Azure
ITCamp 2011 - Mihai Tataran - Migrating to AzureITCamp 2011 - Mihai Tataran - Migrating to Azure
ITCamp 2011 - Mihai Tataran - Migrating to AzureITCamp
 

Similar to ITCamp 2012 - Florin Cardasim - HTML5 web-sockets (20)

ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-CardasimItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
ItCamp2012-Real-Time-Web-Web-Sockets-Windows 8- Florin-Cardasim
 
ITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interopITCamp 2011 - Mihai Nadas - Windows Azure interop
ITCamp 2011 - Mihai Nadas - Windows Azure interop
 
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JSMihai Tataran - Building Windows 8 Applications with HTML5 and JS
Mihai Tataran - Building Windows 8 Applications with HTML5 and JS
 
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
Vunvulea radu   it camp-ro 2012 - building metro style applications on window...Vunvulea radu   it camp-ro 2012 - building metro style applications on window...
Vunvulea radu it camp-ro 2012 - building metro style applications on window...
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
Elements of DDD with ASP.NET MVC & Entity Framework Code First v2
 
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...
ITCamp 2011 - Sebastian Vijeu, Petru Jucovschi - Testare automata si laborato...
 
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
ITCamp 2012 - Radu Vunvulea - Building metro style applications on Windows 8 ...
 
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working togetherTuenti Tech Teams. Frontend, Backend, Systems and more, working together
Tuenti Tech Teams. Frontend, Backend, Systems and more, working together
 
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep diveITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
ITCamp 2013 - Raffaele Rialdi - Windows Runtime (WinRT) deep dive
 
Io t data streaming
Io t data streamingIo t data streaming
Io t data streaming
 
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applicationsITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
ITCamp 2012 - Lorant Domokos - Building single page, modular HTML5 applications
 
Building single page, modular html5 applications for PC and Mobile
Building single page, modular html5 applications for PC and MobileBuilding single page, modular html5 applications for PC and Mobile
Building single page, modular html5 applications for PC and Mobile
 
TechHub pitch
TechHub pitchTechHub pitch
TechHub pitch
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Signal R 2015
Signal R 2015Signal R 2015
Signal R 2015
 
Large scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with UmbracoLarge scale, cloud computing and scalability with Umbraco
Large scale, cloud computing and scalability with Umbraco
 
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
 
Monitoring IAAS & PAAS Solutions
Monitoring IAAS & PAAS SolutionsMonitoring IAAS & PAAS Solutions
Monitoring IAAS & PAAS Solutions
 
Techdays 2011 - Things I will remember
Techdays 2011 - Things I will rememberTechdays 2011 - Things I will remember
Techdays 2011 - Things I will remember
 
ITCamp 2011 - Mihai Tataran - Migrating to Azure
ITCamp 2011 - Mihai Tataran - Migrating to AzureITCamp 2011 - Mihai Tataran - Migrating to Azure
ITCamp 2011 - Mihai Tataran - Migrating to Azure
 

More from ITCamp

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp
 

More from ITCamp (20)

ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
ITCamp 2019 - Stacey M. Jenkins - Protecting your company's data - By psychol...
 
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
ITCamp 2019 - Silviu Niculita - Supercharge your AI efforts with the use of A...
 
ITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing SkillsITCamp 2019 - Peter Leeson - Managing Skills
ITCamp 2019 - Peter Leeson - Managing Skills
 
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud ResourcesITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
ITCamp 2019 - Mihai Tataran - Governing your Cloud Resources
 
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UXITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
ITCamp 2019 - Ivana Milicic - Color - The Shadow Ruler of UX
 
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean ArchitectureITCamp 2019 - Florin Coros - Implementing Clean Architecture
ITCamp 2019 - Florin Coros - Implementing Clean Architecture
 
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...ITCamp 2019 - Florin Loghiade -  Azure Kubernetes in Production - Field notes...
ITCamp 2019 - Florin Loghiade - Azure Kubernetes in Production - Field notes...
 
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...ITCamp 2019 - Florin Flestea -  How 3rd Level support experience influenced m...
ITCamp 2019 - Florin Flestea - How 3rd Level support experience influenced m...
 
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
ITCamp 2019 - Emil Craciun - RoboRestaurant of the future powered by serverle...
 
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The EnterpriseITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
ITCamp 2019 - Eldert Grootenboer - Cloud Architecture Recipes for The Enterprise
 
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal TrendsITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
ITCamp 2019 - Cristiana Fernbach - Blockchain Legal Trends
 
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data LakeITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
ITCamp 2019 - Andy Cross - Machine Learning with ML.NET and Azure Data Lake
 
ITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AIITCamp 2019 - Andy Cross - Business Outcomes from AI
ITCamp 2019 - Andy Cross - Business Outcomes from AI
 
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud StoryITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
ITCamp 2019 - Andrea Saltarello - Modernise your app. The Cloud Story
 
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
ITCamp 2019 - Andrea Saltarello - Implementing bots and Alexa skills using Az...
 
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
ITCamp 2019 - Alex Mang - I'm Confused Should I Orchestrate my Containers on ...
 
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go NowITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
ITCamp 2019 - Alex Mang - How Far Can Serverless Actually Go Now
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian Quality
 
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World ApplicationITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
ITCamp 2018 - Ciprian Sorlea - Million Dollars Hello World Application
 
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
ITCamp 2018 - Ciprian Sorlea - Enterprise Architectures with TypeScript And F...
 

Recently uploaded

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 

Recently uploaded (20)

GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 

ITCamp 2012 - Florin Cardasim - HTML5 web-sockets

  • 1. ITCamp 2012 sponsors Architecture & Best Practices @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 2. Real-time web and Web Sockets in Windows 8 Florin Cardașim, Endava, twitter/@cardasim @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 3. Agenda Architecture & Best Practices Real-time web SSE, WebSockets Q&A Comet/long polling WebSockets in ASP.NET and WCF @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 4. Real-Time Web Architecture & Best Practices • Monitoring/dashboards • Sensor/RFID Tracking • Social networking, Instant messaging • Collaboration tools (Google Docs) • Online gaming (Quake2 in the browser??!!) • … @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 5. Implementing Real-Time Web Architecture & Best Practices • Flash/silverlight/javafx • Ajax polling • Comet/long polling/http streaming … • … other DoS techniques  • Server-sent events • Web sockets @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 6. Polling Architecture & Best Practices Browser connect Server no message connect no message event connect event connect no message connect no message event connect event @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 7. Architecture & Polling Best Practices • No real-time user experience • Wasted bandwidth, most requests return no data • Frequent polling determine high server loads @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 8. Comet/Long Polling Architecture & Best Practices Browser Server connect wait event event connect wait event event connect wait @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 9. Comet/Long Polling Architecture & Best Practices • Real-time user experience • High pressure on server memory, bandwidth, threads/processes • DEMO @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 10. Html5 Server-Sent Events Architecture & Best Practices Browser Server open event stream <EventSource> event event onmessage event onmessage event event onmessage event @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 11. Html5 Server-Sent Events Architecture & Best Practices • Simulates a server push channel over HTTP • Unidirectional, from server to browser • Standardizes some form of Comet/HTTP streaming • New html tag: <EventSource> • New mime type: text/event-stream @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 12. Html5 WebSocket Architecture & Best Practices GET /text HTTP/1.1 Client/ Host: www.websocket.org Server Browser Upgrade: WebSocket Connection: Upgrade ... HTTP/1.1 101 Switching Protocols Upgrade: WebSocket Connection: Upgrade ... TCP comm channel Full duplex, bidirectional @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 13. Html5 WebSocket Architecture & Best Practices • Full duplex, bidirectional • Single TCP socket • Standard ports: http/80, https/443 • In & outside of browser • Bandwidth savings, enhanced scalability @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 14. WebSocket vs Polling Bandwidth Architecture & Best Practices http://websocket.org/quantum.html @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 15. WebSocket – The Protocol Architecture & Best Practices OpCode (4 bit) Meaning/frame type 0 Continuation 1 Text (UTF-8) 2 Binary 3-7 Reserved for further non-control frames 8 Connection Close 9 Ping 10 Pong 11-15 Reserved for further non-control frames @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 16. WebSocket – The Java Script API Architecture & Best Practices @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 17. Browser Support Architecture & Best Practices @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 18. Server Side Support Architecture & Best Practices • Socket.IO (node.js) • Atmosphere, Jetty (Java) • Ruby/EventMachine • Python/Twisted • Windows 8, IIS 8, ASP.NET-WCF 4.5 • … others @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 19. WebSockets in Windows 8 Architecture & Best Practices Your code! WCF high level abstractions ASP.NET high level WCF WebSocket transport abstractions System.Net.WebSockets ASP.NET HTTP Pipeline HttpListener IIS (iiswsock.dll) http.sys @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 20. WebSockets in Windows 8 Architecture & Best Practices • DEMO • IE 10 • Windows 8, IIS 8 • ASP.NET 4.5 • WCF 4.5 @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 21. WebSockets in ASP.NET Architecture & Best Practices Developer “agrees” to upgrade to a WebSocket connection HttpContext.Current.AcceptWebSocketRequest( Func<AspNetWebSocketContext,Task> myWebSocketApp, AspNetWebSocketOptions optionalSetupInfo ); Asynchronously receive and send messages public async Task MyWebSocketApp(AspNetWebSocketContext context) { var socket = context.WebSocket; … var input = await socket.ReceiveAsync(buffer); … await socket.SendAsync(outputBuffer,…params…); } @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 22. WebSockets in WCF Architecture & Best Practices • WebSocket transport for WCF • Traditional WCF running over WebSocket connections @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 23. Concerns – Network Topology Architecture & Best Practices • NAT, Firewall – NOT an issue, standard ports: http/80, https/443 • Proxy (forward, reverse, transparent etc) – It depends, but generally an issue – CONNECT (tunnel/SSL) • Load Balancer – TCP (Layer-4) – no issue – HTTP (Layer-7) – may require explicit configuration @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 24. Concerns – Adoption Architecture & Best Practices • Use frameworks: – Socket.IO (node.js) – Atmosphere (java) – SignalR (.net) @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 25. References Architecture & Best Practices • http://www.websocket.org • http://www.kaazing.me • http://www.buildwindows.com • http://ww.infoq.com/websocket • http://socket.io @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 26. Other WebSockets sessions @ITCamp Architecture & Best Practices • Building modern web sites with ASP .Net Web API, WebSockets and SignalR – 14:45 – Alessandro Pilotti @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 27. Q&A How will WebSocket impact the existing WEB programming? @ itcampro # itcamp12 Premium conference on Microsoft technologies
  • 28. I’d love to hear you feedback – please fill the evaluation forms Thank you! Florin Cardașim, Endava, twitter/@cardasim @ itcampro # itcamp12 Premium conference on Microsoft technologies