SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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 EverythingCloudPassage
 

La actualidad más candente (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 a 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 v2Enea 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
 
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 MobileLorant Domokos
 
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 UmbracoWarren 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
 
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 a 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
 

Más de 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 SkillsITCamp
 
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 ResourcesITCamp
 
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 UXITCamp
 
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 ArchitectureITCamp
 
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 EnterpriseITCamp
 
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 TrendsITCamp
 
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 LakeITCamp
 
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 AIITCamp
 
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 StoryITCamp
 
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 NowITCamp
 
ITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp 2019 - Peter Leeson - Vitruvian Quality
ITCamp 2019 - Peter Leeson - Vitruvian QualityITCamp
 
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 ApplicationITCamp
 
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
 

Más de 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...
 

Último

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Último (20)

SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

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