SlideShare una empresa de Scribd logo
1 de 40
Alex Konduforov
About me
 Live in Kharkov
 Work at AltexSoft
 Blogger (merle-amber.blogspot.com)
 Speaker at different conferences

and .NET user groups
 Kharkov AI club co-organizer
Web evolution
Event-based, real-time UI

Partial page updates (Ajax), RIA

Dynamic pages, forms

Static HTML pages
Users Want the
Latest Info
NOW!
Social networks
Auctions
Stock tickers
Web chats
Other applications
 Live scores
 Real-time notifications
 Interactive games
 Collaborative apps

 Live user analytics
 etc.
Standard solutions
 Frequent Polling
 Long polling
 Server-Sent events (HTML5)
 WebSocket (HTML5)
Polling
 Get updates frequently using Ajax requests

Pros:
 --Cons:
 Delay in results
 Wastes bandwidth & latency
Long polling
 Similar to usual polling (Ajax requests)
 Request waits longer (1-2 minutes)

Pros:
 Lower load on server
 No delays
Cons:
 Consumes server threads & connection resources
Server-Sent events
 HTML5, works over HTTP
 EventSource JavaScript API
 Content-type: text/event-stream

Pros:
 No need to reconnect
 No need in a special protocol or server implementation
Cons:
 Works in server-t0-client direction
WebSocket
 HTML5, new protocol (ws:// and wss://) on top of TCP

Pros:
 Full-duplex persistent connection (both ways)
Cons:
 Require Web Socket protocol support on client (IE10)
 Require Web Socket protocol support on server (IIS8)
What to do?
WebSocket

Best solution

Not supported on all
browsers and server

Server-Sent events + Very good
Ajax to send data
Long Polling
Not so good

Not supported in IE
(damn!)
Supported everywhere

Mix

Do I need to implement
it on my own???

Very good
Superman SignalR to the rescue!
Authors

Damian Edwards

David Fowler
What is SignalR?
 Official MS technology to build real-time multi-user

ASP.NET applications: http://signalr.net/
 Out-of-box solution that consists of server and client
side
 Abstraction over the set of transports
 Open-source solution available on GitHub that can be
installed via NuGet
Transports priority
WebSockets

Server-Sent events

Forever Frame (IE hack)

Long Polling
Architecture
Client side
JS, .NET/WinRT, WP, Silverlight, iOS/Android

Hub API

PersistentConnection API
Hubs
 High-level API

 Similar to Controller (actions, thread per call)
Supported scenarios
 Client calling the server
 Server calling clients (all, group, one)
 State round-tripping between client and server
 Binding complex objects (JSON)

 Detecting connect, disconnect and reconnect clients
 Broadcasting from outside of a Hub
 Async scenarios (return Task/Task<T> to client)
Server calling the client
 dynamic Clients property

 JSON serialization
Managing Groups
 Add/remove connections to groups
Broadcasting from outside
 Notify clients from another server-side code
JavaScript client
 $.connection.hub


connection for all hubs (url points to /signalr)

 $.connection.hub.id


client id for the hub connection

 $.connection.hub.start()


starts the connection for all hubs

 $.connection.{hubname}


access a client side hub from the generated proxy
Exposing methods on the client
 The JavaScript client can declare methods that the

server can invoke:
 myHub.{method} = callback
 declares a function the server can invoke.
 method - name of the client side method
 callback - function to execute when the server invokes
the method
JavaScript example
Asynchronous execution
DEMO
Authentication
 Uses ASP.NET authentication mechanisms
 Provides the Authorize attribute for Hubs
 Forms and Windows authentications

 Certificates are available as well
Authentication
 Connection token uniquely identifies clients
Security
 Cross-Site Request Forgery (CSRF) prevention
 Disable cross domain requests
 Pass connection token in query string, not cookie
 Verify connection token
 If authenticated user changes,

SignalR requires a re-connection
Configuring SignalR
Set in IConfigurationManager:
Settings

Description

ConnectionTimeout amount of time to leave a connection
open (110 sec default)

Default value

110 seconds

DisconnectTimeout

amount of time to wait after a
20 seconds
connection goes away before raising the
disconnect event

HeartBeatInterval

interval for checking the state of a
connection

KeepAlive

amount of time to wait before sending a 30 seconds
keep alive packet over an idle
connection. Set to null to disable keep
alive

10 seconds
SignalR and web farm
 Azure Service Bus
 Windows Server Service Bus
 SQL Server
 Redis
SignalR over Redis
 Step 1


Download and install Redis as Windows service

 Step 2


Install-Package SignalR.Redis

 Step 3
New features in v2.0
 .NET 4.5 only!
 iOS and Android support via Xamarin
 Portable .NET clients
 Self hosting package
 Backwards compatibility server support

 Cross domain support
 Easier unit testing
 JavaScript error handling

 New HubException exception
Safe to use?
 Version 2.0 released
 Dynamically evolving
 Proven and stable technology
 Used in many real-time .NET applications

 Open-source
Materials
 https://github.com/SignalR
 http://jabbr.net
 http://www.hanselman.com/blog/CategoryView.aspx?cate

gory=SignalR
 http://www.asp.net/signalr/overview/signalr-20
 http://merle-amber.blogspot.com/2012/11/real-timeaspnet-signalr.html
Thanks for listening!
 merle-amber.blogspot.com
 aikharkov.wordpress.com
 @konduforov

31337

Más contenido relacionado

La actualidad más candente

REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developersPatrick Savalle
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsTessa Mero
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web APIBrad Genereaux
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to APIrajnishjha29
 
Asp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptAsp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptShivanand Arur
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - APIChetan Gadodia
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 SlidesSuraj Gupta
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 

La actualidad más candente (20)

REST-API introduction for developers
REST-API introduction for developersREST-API introduction for developers
REST-API introduction for developers
 
Rest assured
Rest assuredRest assured
Rest assured
 
Postman.ppt
Postman.pptPostman.ppt
Postman.ppt
 
REST API
REST APIREST API
REST API
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
Postman & API Testing by Amber Race
Postman & API Testing by Amber RacePostman & API Testing by Amber Race
Postman & API Testing by Amber Race
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Rest API
Rest APIRest API
Rest API
 
Rest web services
Rest web servicesRest web services
Rest web services
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Introduction to the Web API
Introduction to the Web APIIntroduction to the Web API
Introduction to the Web API
 
Introduction to API
Introduction to APIIntroduction to API
Introduction to API
 
REST API Authentication Methods.pdf
REST API Authentication Methods.pdfREST API Authentication Methods.pdf
REST API Authentication Methods.pdf
 
Asp.net membership anduserroles_ppt
Asp.net membership anduserroles_pptAsp.net membership anduserroles_ppt
Asp.net membership anduserroles_ppt
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Learn REST in 18 Slides
Learn REST in 18 SlidesLearn REST in 18 Slides
Learn REST in 18 Slides
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 

Destacado

Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRRoy Cornelissen
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияAlexey Kachayev
 
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 ELEIÇÕES 2012 - ASTORGA: Toninho 31123 ELEIÇÕES 2012 - ASTORGA: Toninho 31123
ELEIÇÕES 2012 - ASTORGA: Toninho 31123Joao Carlos Passari
 
Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)brendankowitz
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRShravan Kumar Kasagoni
 
«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NETAlessandro Giorgetti
 
SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012Maarten Balliauw
 
Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008maddinapudi
 
Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Mohamed Saleh
 
Asp.net Training at NCrypted Learning Center
Asp.net Training at NCrypted Learning CenterAsp.net Training at NCrypted Learning Center
Asp.net Training at NCrypted Learning CenterNCrypted Learning Center
 
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Mohamed Saleh
 

Destacado (20)

NLP Project Full Cycle
NLP Project Full CycleNLP Project Full Cycle
NLP Project Full Cycle
 
SignalR
SignalRSignalR
SignalR
 
Real time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalRReal time websites and mobile apps with SignalR
Real time websites and mobile apps with SignalR
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Redis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использованияRedis: возможности, выгоды, примеры использования
Redis: возможности, выгоды, примеры использования
 
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 ELEIÇÕES 2012 - ASTORGA: Toninho 31123 ELEIÇÕES 2012 - ASTORGA: Toninho 31123
ELEIÇÕES 2012 - ASTORGA: Toninho 31123
 
Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)Real time web applications with SignalR (BNE .NET UG)
Real time web applications with SignalR (BNE .NET UG)
 
Building Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalRBuilding Realtime Web Applications With ASP.NET SignalR
Building Realtime Web Applications With ASP.NET SignalR
 
«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET«Real Time» Web Applications with SignalR in ASP.NET
«Real Time» Web Applications with SignalR in ASP.NET
 
SignalR
SignalRSignalR
SignalR
 
SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012SignalR. Code, not toothpaste - TechDays Belgium 2012
SignalR. Code, not toothpaste - TechDays Belgium 2012
 
Real time web with SignalR
Real time web with SignalRReal time web with SignalR
Real time web with SignalR
 
Asp.net Mvc 5 y Azure
Asp.net Mvc 5 y AzureAsp.net Mvc 5 y Azure
Asp.net Mvc 5 y Azure
 
Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008Introduction to Asp.net 3.5 using VS 2008
Introduction to Asp.net 3.5 using VS 2008
 
Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)Module 4: Introduction to ASP.NET 3.5 (Material)
Module 4: Introduction to ASP.NET 3.5 (Material)
 
Learn ASP
Learn ASPLearn ASP
Learn ASP
 
Startups Getting Started
Startups Getting StartedStartups Getting Started
Startups Getting Started
 
Asp.net Training at NCrypted Learning Center
Asp.net Training at NCrypted Learning CenterAsp.net Training at NCrypted Learning Center
Asp.net Training at NCrypted Learning Center
 
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
Module 4: Introduction to ASP.NET 3.5 (PowerPoint Slides)
 
CUDA & CAFFE
CUDA & CAFFE CUDA & CAFFE
CUDA & CAFFE
 

Similar a Real-time ASP.NET with SignalR

Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Deepak Gupta
 
Web Services Container
Web Services ContainerWeb Services Container
Web Services ContainerJorgen Thelin
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricSpiffy
 
Realtime web experience with signal r
Realtime web experience with signal rRealtime web experience with signal r
Realtime web experience with signal rRan Wahle
 
AWS IoT - Best of re:Invent Tel Aviv
AWS IoT - Best of re:Invent Tel AvivAWS IoT - Best of re:Invent Tel Aviv
AWS IoT - Best of re:Invent Tel AvivAmazon Web Services
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)Kashif Imran
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf euXie ChengChao
 
HTML5 Server Sent Events/JSF JAX 2011 Conference
HTML5 Server Sent Events/JSF  JAX 2011 ConferenceHTML5 Server Sent Events/JSF  JAX 2011 Conference
HTML5 Server Sent Events/JSF JAX 2011 ConferenceRoger Kitain
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentationteach4uin
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabricDavid Chou
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Nino Ho
 
Connected Web Systems
Connected Web SystemsConnected Web Systems
Connected Web SystemsDamir Dobric
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkMirco Vanini
 
Fancy Features in Asp.Net Core SignalR
Fancy Features in Asp.Net Core SignalRFancy Features in Asp.Net Core SignalR
Fancy Features in Asp.Net Core SignalRVladimir Georgiev
 

Similar a Real-time ASP.NET with SignalR (20)

Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)Real time Communication with Signalr (Android Client)
Real time Communication with Signalr (Android Client)
 
Signal r
Signal rSignal r
Signal r
 
Introduction To Cloud Computing
Introduction To Cloud ComputingIntroduction To Cloud Computing
Introduction To Cloud Computing
 
Web Services Container
Web Services ContainerWeb Services Container
Web Services Container
 
CTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App FabricCTU June 2011 - Windows Azure App Fabric
CTU June 2011 - Windows Azure App Fabric
 
Realtime web experience with signal r
Realtime web experience with signal rRealtime web experience with signal r
Realtime web experience with signal r
 
AWS IoT - Best of re:Invent Tel Aviv
AWS IoT - Best of re:Invent Tel AvivAWS IoT - Best of re:Invent Tel Aviv
AWS IoT - Best of re:Invent Tel Aviv
 
SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)SharePoint Client Object Model (CSOM)
SharePoint Client Object Model (CSOM)
 
Day6
Day6Day6
Day6
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
 
WebSockets in JEE 7
WebSockets in JEE 7WebSockets in JEE 7
WebSockets in JEE 7
 
HTML5 Server Sent Events/JSF JAX 2011 Conference
HTML5 Server Sent Events/JSF  JAX 2011 ConferenceHTML5 Server Sent Events/JSF  JAX 2011 Conference
HTML5 Server Sent Events/JSF JAX 2011 Conference
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentation
 
Windows Azure AppFabric
Windows Azure AppFabricWindows Azure AppFabric
Windows Azure AppFabric
 
Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares Oauth Nightmares Abstract OAuth Nightmares
Oauth Nightmares Abstract OAuth Nightmares
 
Connected Web Systems
Connected Web SystemsConnected Web Systems
Connected Web Systems
 
IoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@WorkIoT with SignalR & .NET Gadgeteer - NetMF@Work
IoT with SignalR & .NET Gadgeteer - NetMF@Work
 
Webconnection
WebconnectionWebconnection
Webconnection
 
Windows Azure
Windows AzureWindows Azure
Windows Azure
 
Fancy Features in Asp.Net Core SignalR
Fancy Features in Asp.Net Core SignalRFancy Features in Asp.Net Core SignalR
Fancy Features in Asp.Net Core SignalR
 

Más de Alexander Konduforov

Recommender systems for E-commerce
Recommender systems for E-commerceRecommender systems for E-commerce
Recommender systems for E-commerceAlexander Konduforov
 
Machine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningMachine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningAlexander Konduforov
 
ИИ персонажей в онлайн шутере Survarium
ИИ персонажей в онлайн шутере SurvariumИИ персонажей в онлайн шутере Survarium
ИИ персонажей в онлайн шутере SurvariumAlexander Konduforov
 
Ling to SQL and Entity Framework performance analysis
Ling to SQL and Entity Framework performance analysisLing to SQL and Entity Framework performance analysis
Ling to SQL and Entity Framework performance analysisAlexander Konduforov
 

Más de Alexander Konduforov (8)

Recommender systems for E-commerce
Recommender systems for E-commerceRecommender systems for E-commerce
Recommender systems for E-commerce
 
Fast data munging in R
Fast data munging in RFast data munging in R
Fast data munging in R
 
Machine Learning and Azure Machine Learning
Machine Learning and Azure Machine LearningMachine Learning and Azure Machine Learning
Machine Learning and Azure Machine Learning
 
ИИ персонажей в онлайн шутере Survarium
ИИ персонажей в онлайн шутере SurvariumИИ персонажей в онлайн шутере Survarium
ИИ персонажей в онлайн шутере Survarium
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
New in Entity Framework 4.0
New in Entity Framework 4.0New in Entity Framework 4.0
New in Entity Framework 4.0
 
ASP.NET MVC: new era?
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
 
Ling to SQL and Entity Framework performance analysis
Ling to SQL and Entity Framework performance analysisLing to SQL and Entity Framework performance analysis
Ling to SQL and Entity Framework performance analysis
 

Último

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Real-time ASP.NET with SignalR

  • 2. About me  Live in Kharkov  Work at AltexSoft  Blogger (merle-amber.blogspot.com)  Speaker at different conferences and .NET user groups  Kharkov AI club co-organizer
  • 3. Web evolution Event-based, real-time UI Partial page updates (Ajax), RIA Dynamic pages, forms Static HTML pages
  • 9. Other applications  Live scores  Real-time notifications  Interactive games  Collaborative apps  Live user analytics  etc.
  • 10. Standard solutions  Frequent Polling  Long polling  Server-Sent events (HTML5)  WebSocket (HTML5)
  • 11. Polling  Get updates frequently using Ajax requests Pros:  --Cons:  Delay in results  Wastes bandwidth & latency
  • 12. Long polling  Similar to usual polling (Ajax requests)  Request waits longer (1-2 minutes) Pros:  Lower load on server  No delays Cons:  Consumes server threads & connection resources
  • 13. Server-Sent events  HTML5, works over HTTP  EventSource JavaScript API  Content-type: text/event-stream Pros:  No need to reconnect  No need in a special protocol or server implementation Cons:  Works in server-t0-client direction
  • 14. WebSocket  HTML5, new protocol (ws:// and wss://) on top of TCP Pros:  Full-duplex persistent connection (both ways) Cons:  Require Web Socket protocol support on client (IE10)  Require Web Socket protocol support on server (IIS8)
  • 15. What to do? WebSocket Best solution Not supported on all browsers and server Server-Sent events + Very good Ajax to send data Long Polling Not so good Not supported in IE (damn!) Supported everywhere Mix Do I need to implement it on my own??? Very good
  • 16. Superman SignalR to the rescue!
  • 18. What is SignalR?  Official MS technology to build real-time multi-user ASP.NET applications: http://signalr.net/  Out-of-box solution that consists of server and client side  Abstraction over the set of transports  Open-source solution available on GitHub that can be installed via NuGet
  • 20. Architecture Client side JS, .NET/WinRT, WP, Silverlight, iOS/Android Hub API PersistentConnection API
  • 21. Hubs  High-level API  Similar to Controller (actions, thread per call)
  • 22. Supported scenarios  Client calling the server  Server calling clients (all, group, one)  State round-tripping between client and server  Binding complex objects (JSON)  Detecting connect, disconnect and reconnect clients  Broadcasting from outside of a Hub  Async scenarios (return Task/Task<T> to client)
  • 23. Server calling the client  dynamic Clients property  JSON serialization
  • 24. Managing Groups  Add/remove connections to groups
  • 25. Broadcasting from outside  Notify clients from another server-side code
  • 26. JavaScript client  $.connection.hub  connection for all hubs (url points to /signalr)  $.connection.hub.id  client id for the hub connection  $.connection.hub.start()  starts the connection for all hubs  $.connection.{hubname}  access a client side hub from the generated proxy
  • 27. Exposing methods on the client  The JavaScript client can declare methods that the server can invoke:  myHub.{method} = callback  declares a function the server can invoke.  method - name of the client side method  callback - function to execute when the server invokes the method
  • 30. DEMO
  • 31. Authentication  Uses ASP.NET authentication mechanisms  Provides the Authorize attribute for Hubs  Forms and Windows authentications  Certificates are available as well
  • 32. Authentication  Connection token uniquely identifies clients
  • 33. Security  Cross-Site Request Forgery (CSRF) prevention  Disable cross domain requests  Pass connection token in query string, not cookie  Verify connection token  If authenticated user changes, SignalR requires a re-connection
  • 34. Configuring SignalR Set in IConfigurationManager: Settings Description ConnectionTimeout amount of time to leave a connection open (110 sec default) Default value 110 seconds DisconnectTimeout amount of time to wait after a 20 seconds connection goes away before raising the disconnect event HeartBeatInterval interval for checking the state of a connection KeepAlive amount of time to wait before sending a 30 seconds keep alive packet over an idle connection. Set to null to disable keep alive 10 seconds
  • 35. SignalR and web farm  Azure Service Bus  Windows Server Service Bus  SQL Server  Redis
  • 36. SignalR over Redis  Step 1  Download and install Redis as Windows service  Step 2  Install-Package SignalR.Redis  Step 3
  • 37. New features in v2.0  .NET 4.5 only!  iOS and Android support via Xamarin  Portable .NET clients  Self hosting package  Backwards compatibility server support  Cross domain support  Easier unit testing  JavaScript error handling  New HubException exception
  • 38. Safe to use?  Version 2.0 released  Dynamically evolving  Proven and stable technology  Used in many real-time .NET applications  Open-source
  • 39. Materials  https://github.com/SignalR  http://jabbr.net  http://www.hanselman.com/blog/CategoryView.aspx?cate gory=SignalR  http://www.asp.net/signalr/overview/signalr-20  http://merle-amber.blogspot.com/2012/11/real-timeaspnet-signalr.html
  • 40. Thanks for listening!  merle-amber.blogspot.com  aikharkov.wordpress.com  @konduforov 31337

Notas del editor

  1. ПредставлениеПеред тем как начать доклад, хотелось бы спросить, что вы понимаете под понятием Real-time и как это может быть применимо к веб-приложениям?Сколько людей уже пробовали SignalR?
  2. Рассмотрим развитие вебы-программирования.Веб начинался 20 лет назад со статических HTML страниц. Потом появились скриптовые серверные языки программирования, которые позволили начать создавать динамические страницы, загружать данные на сервер. Следующий значительный этап – частичное обновление страницы (AJAX), появление Rich Internet Applications. Казалось бы, вот оно, счастье. Но и это не решает всех проблем. Все, что мы рассматривали до этого – следование парадигме запрос-ответ. Сервер ничего не знает о клиентах и не может посылать им сообщения. А без этого нельзя строить по-настоящему real-time UI.Сколько людей сталкивались с задачами обеспечения real-time UI, с какими именно?
  3. Есть еще и некоторые другие примеры.
  4. Какие есть стандартные решения для перечисленных задач.Самый первый исторически появившийся – Polling, т.е. постоянное обращение на сервер за обновлениямиЗатем программисты подумали и решили, что можно держать запрос открытым подольше, чтобы не забрасывать сервер запросами – Long Polling. Добиться большего на старой спецификации HTML и HTTP было сложно.Но когда появилась спецификация HTML5, то в нее было добавлено сразу 2 механизма: Server-Sent events и WebSockets. И если о последнем уже многие слышали, то про Server-Sent events не догадываешься, пока не столкнешься с соответств
  5. Итак, использоватьWebSocketеще рано, т.к. он пока не поддерживается во всех браузерах, и даже не на всех серверах. Если вам этого достаточно – отлично, а если нет?Можно использовать Server-SentEvents + отправку данных через старый-добрый XmlHttpRequest (Ajax), но он не поддерживается в IE (слава тебе).Можно всегда использовать Long Polling, но это бОльшая нагрузка на сервер + большинство браузеров все же поддерживают SSE.Хотелось бы иметь разные решения в разных ситуациях
  6. На данный момент