Successfully reported this slideshow.

Real-time Communication using SignalR and cloud

434 views

Published on

This session will explore how SignalR can make our life easier to create real-time application that works on any kind of device or browser.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Real-time Communication using SignalR and cloud

  1. 1. Real-time fluent communication using SignalR and Cloud Radu Vunvulea vunvulear@gmail.com http://vunvulearadu.blogspot.com
  2. 2. { “name” : “Radu Vunvulea, “company” : “iQuest”, “userType” : “enthusiastic” “technologies” : [ “.NET”, “JS”, “Azure”, “Web”, “Mobile”, “SL” ], “blog” : “vunvulearadu.blogspot.com”, “email” : ”vunvulear@gmail.com”, “socialMedia” : { “twitter” : “@RaduVunvulea”, “fb” : “radu.vunvulea” } } Who am I?
  3. 3. Agenda • What? • When? • Where? • How? • Why?
  4. 4. •Static Web • HTML & Request/Response •Ajax • jQuery & Prototype •Real Time Web • Real Time Libraries & Web Socket
  5. 5. Real Time Interaction • Chat • Notifications • Weather • Stock market • Auction • Games • Monitoring • Dashboard • Document editing
  6. 6. • WebSocket • Forever Frame • Server Sent Events • Pooling • SPDY What we can use?
  7. 7. What we can use? • Commet • Pusher • SockJS • SocketIO • Faye • Now.js • Sse • Django-sse • Cramp
  8. 8. What we can use? • Commet • Pusher • SockJS • SocketIO • Faye • Now.js • Sse • Django-sse • Cramp SignalR
  9. 9. What is SignalR? • Async library for .NET to help build real-time, multiuser interactive web applications • Bidirectional communication • Open Source • Adopted by Microsoft • GitHub
  10. 10. When we can use it? • Server • Windows (.NET) • Mono • Clients • Chrome • Firefox • Safari • IE • Opera • Android browser • IoS • Windows Desktop • Silverlight • Windows Store • Windows Phone • and old browsers
  11. 11. Connection methods • WebSocket • Server Side Events • Forever Frame • Ajax long pooling
  12. 12. Persistent Connection • Similar with WebSocket • Persistent • Events • Connect • Disconnect • Receive • Error • Methods • Send • Broadcast
  13. 13. Hubs • Over Connections • Share variables • Calls between client and server • Serialization • Capture connect/disconnect • Everything works by magic
  14. 14. Hubs • When you have multiple hubs • Same connection is shared by a client • Groups are maintain separately for each hub • One proxy JS file for all hubs • Async support • OnConnected • OnDisconnected • OnReconnected • proxy.State (JS) & Client.Caller (C#)
  15. 15. Hubs vs Persistent Connections Hubs • Remote invocation Persistent Connections • Message format needs to be specified • Messaging and dispatching model • An existing app is ported to SignalR
  16. 16. Security • Based on Connection Token (Connection Id + Username) • Unique • Managed by server • Encrypted with a digital signature • Connection Id • Exist until the end of connection • Username • Only for authenticated users • Passed between client and server for each request
  17. 17. CSRF and SignalR • Disable cross domain requests • Verify connection token • Put connection token query string • The connection token is not persisted on the client
  18. 18. Performance • Single Box • Over 450.000 messages per second • 15.000 – 20.000 connection (hardware limitations – ports) • Web farm • You have “NO” limit • You need to synchronize each node from the farm
  19. 19. SignalR Farm • Backplanes: • Windows Azure Service Bus • Redis • SQLServer •  Server broadcast •  High-frequency realtime •  Client to client
  20. 20. Conclusion • SignalR • Client to Server • Server to Client • Broadcasting • Real Time application • Scalable • Low latency
  21. 21. Question Answers
  22. 22. THE END Radu Vunvulea vunvulear@gmail.com http://vunvulearadu.blogspot.com

×