
Discover how SignalR delivers real-time web updates via a hub, with client and server components, enabling apps like chat without page refreshes; see open source status and Azure support.
Explore real-time features with SignalR through live demos of total views, connections, and notifications across tabs. Build chat apps with groups, private messages, and room management, plus real-time order updates.
Discover the foundations of SignalR, set up projects, and learn hubs and terminology; explore the .NET client, identity integration, groups, connections, transport layers, and reconnect strategies across eight practical projects.
Demonstrates the difference between traditional HTTP request–response and SignalR's two-way, open connection that lets the server push updates to the client, using transports like server-sent events and long polling.
Learn how hubs in SignalR act as server-side classes that send and receive messages, enable two-way open connections, and are routed like hubs/user account in an MVC app.
Walk through a 10,000-foot overview of the SignalR flow, from creating the hub on the server to connecting from the client and rendering real-time updates in the dom.
Create a SignalR project in Visual Studio 2022, use an mvc template with individual accounts identity, and push the project to a private git repository.
Create a SignalR hub by adding a user hub class, configure SignalR services in Program, and map the hub route so clients can connect and exchange messages.
Create a SignalR hub method to increment total views on page load and broadcast the updated count to all connected clients in real time.
Learn how to add the client side signalr library to your project by installing the latest microsoft/signalr package and linking its js file, preparing for client-side updates and views.
Run the project to inspect the home page template and set up a total views counter. Establish a SignalR client connection to the user hub for live updates.
Connect a SignalR hub from the client using a JavaScript file, create a hub connection, register a handler for update total views, and start the connection to enable two-way communication.
Establish a SignalR connection to the hub, register hub-invoked methods like update total views, and push updates to all clients in real time via web socket.
Track user connections in a SignalR hub by overriding on connected async and on disconnected async to increment or decrement a total users counter, broadcasting updates to all clients.
Create a signalR hub, add a total views method, connect the client, and invoke hub methods to broadcast updates to all connected clients in a typical flow.
Explore SignalR transport types, including websockets, server-sent events, and long polling, and learn how each opens and uses connections to enable real-time messaging.
Explore signalr connections and client targeting in a hub, sending notifications to all, individual connections, those excluding the caller, and user-based or group notifications.
Compare send and invoke in SignalR, showing how invoke returns a value via a promise, while send yields no response; pass parameters and observe returned values in the client.
Learn how to change transport types in SignalR, from WebSockets to long polling and server-sent events, and adjust logging levels to trace or information to diagnose issues.
Create an online Deathly Hallows race by implementing API-based voting, a static details class with a dictionary of counts, and dynamic UI updates.
Create a Deathly Hallows hub in SignalR, implement a method returning a dictionary with the current Deathly Hallows race count, register the hub route, and notify clients on updates.
Create a test for the new hub, set the Deathly Hallows connection, and update the UI with clock, stone, and wand counts when the hub invokes the update.
Inject IHubContext to call the hub from the home controller. Use sendAsync to notify all connected clients about deathly hallows part II updates with cloak, stone, and wand.
Learn how a new connection automatically loads the current race count for the best live harlow race by invoking the hub’s get race status and updating the race counter.
Explore SignalR groups: add or remove connections from groups, send messages to single or multiple groups, and target notifications—optionally excluding the caller.
Explore building group notifications with SignalR by implementing a house notification system for Harry Potter, including subscribe/unsubscribe actions, per-connection subscriptions, and selective notifications across multiple houses.
Build the Harry Potter house UI with four boxes, enable subscribe/unsubscribe for each house, and use SignalR group integration to show subscribed labels and trigger notifications.
Set up a signalr hub called house group to manage joining and leaving houses. Use a unique connectionId-houseName key to track groups and map to /houseGroup.
Wire subscribe and unsubscribe buttons to a SignalR client, establish the connection, retrieve buttons by IDs, and invoke join house or leave house with the chosen house.
Demonstrate subscribing and unsubscribing to groups (houses) in a SignalR app, update the client UI, invoke hub methods, and show toast notifications for actions.
Fix a subscription bug in a SignalR app by lowercasing the house name input, ensuring the unsubscribe button displays and the subscribe button hides across connections during testing.
Implement real-time group notifications with SignalR: when a connection subscribes to a house, broadcast a toaster alert to all connections in that group that someone joined Raven Cloud.
Implement subscribe and unsubscribe in a SignalR hub, broadcasting notifications to all clients except the caller, with handlers for new member added to or removed from the house.
Users subscribe to houses and trigger notifications that display a toast message to subscribers in the house group; the hub sends messages only to those subscribed.
Implement a functional notification system by creating a new notification view, wiring a notification tab and controller, and updating the user interface to display and track messages using bootstrap icons.
Create a notification hub that collects messages in string list, increments the notification counter on messages, and exposes send message and load messages methods to push updates to clients.
Set up a notification client with a SignalR connection, enable the send button on success, and implement message sending, event listeners, and UI updates for real-time notifications.
Connect to load notifications using SignalR, update a notification counter, render incoming messages in a list, and test the integration with debugging and fixes.
Fix the on-load notification issue by invoking load messages in the notification hub during connection setup to display messages on refresh. Then continue to build a small chat application.
Split the index view into separate views to improve readability, duplicating notifications and Harry Potter house segments, adjust names, and prepare for a homepage chart application.
Create a basic chat UI with sender, receiver, and message input and a send button, wired to identity authentication and a messages list.
Create a hub and client-side SignalR implementation to broadcast messages to all users, handle message received events, and update the chat list in real time.
Implement private messaging with SignalR by validating the receiver's email and login, then use the app db context to obtain the receiver's user id and send the message privately.
Learn how to enforce authorization in SignalR so only authorized users can send private messages using the authorize attribute, with optional role or policy checks.
Separate the chat feature in a SignalR app by isolating the basic chat, removing views and accounts, and adding a chat controller with a chat action to test private messages.
Set up a database-backed admin dashboard to create and list orders, with automatic table refresh and toaster notifications for new orders, using an order model, context, and data tables.
Create an order hub to broadcast a real-time notification when a new order is created, update connected clients and refresh the data table with a toaster alert.
Discover how to create an Azure SignalR service, choose a resource group and region, select pricing tier and connections, compare free, standard, and premium, and review cost and service mode.
Explore how Azure SignalR monitoring tracks connections and message counts, scales units to handle thresholds, and configures keys, connection strings, and origins for secure, scalable real-time communication.
Install the Microsoft Azure SignalR NuGet package and supply the primary connection string from the Azure SignalR service, then run the app to verify live connections and the thousand-connection limit.
Explore SignalR client events like on close, on reconnecting, and on reconnected; learn how automatic reconnects trigger UI feedback, color changes, and data reload to ensure fresh state after reconnects.
Add a chatroom model with migrations to support multiple rooms and private messages, update the database, and rename and wire the ui for the new chat structure.
Create api endpoints for chat applications using entity framework to perform create, read, update, delete on chatrooms and to retrieve chatrooms and users with focused controller design.
Set up the chat user interface with signalr, enabling create/delete rooms (max four) and a room dropdown, and support public messages and private messages with sender and receiver.
Build a chat view model with a four-room limit, track room names and the logged-in user id, and authorize access before displaying the chat view.
Set up a SignalR chat hub to manage user connections, track online users with a connection dictionary, and display a connected user message when clients connect.
Establish a SignalR client connection to the chat hub, handle the receive user connected event to display the username is online, and configure automatic reconnect settings.
Learn how SignalR prevents duplicate online indicators by checking a user's ID in a shared dictionary of connections, and implement the has user logic in the chat hub.
Learn to manage disconnections in a signalr chat hub by tracking per-user connections, removing a single disconnected connection, and calling receive user disconnected to update online users.
Learn to implement add room by posting new chat rooms via the chat rooms controller, populate user and room dropdowns, and notify clients with SignalR.
Test and implement create chat room functionality in a SignalR app, validating room creation via post actions, breakpoints, and automatic dropdown reload of email entries, with planned delete room support.
Learn to delete a chat room by selecting the room, confirming, and calling the delete chatroom endpoint with the room id, then updating the dropdown.
Learn to implement sending public messages in a SignalR app, selecting a room, composing a message, and broadcasting it to all connected clients via a chat hub.
Implement private messaging in SignalR by wiring up send private message, receiver and sender IDs, and two-user notifications, then test across browsers.
Explore extending the SignalR chat hub to support advanced features such as open private chats, delete private chats, and rich UI interactions using JavaScript.
Typically in an application client initiates a request and server responds back, but what if server had to send a data without a request?
OR
What if you want something on the web page to be automatically refreshed when new data is available?
OR
You want to learn how a typical chat application works?
SignalR is the answer to that! SignalR has been there since many years, but still it is a new domain to many .NET Developers. SignalR is just a wrapper around the real time web protocols, but it is a great technology to achieve real time web communication. In this course we will walk you though the basics of what is SignalR and what problem it solves.
After that we will dive deeper in the fundamentals and build multiple projects using SignalR.
At the end of this course you will be confident to take what you learned and implement SignalR in your project! This is 100% hands on course, so lets get started!
My main focus is not to teach you some theory! My goal is always to teach you real world application and how you can practically use SignalR. The course is built using .NET 7! I always thrive to keep content up to date and if you have any questions, I will just be a question away :)