How donato381/signalr works
ChatSite is a real-time, multi-user chat application. A user connects with a name, receives the current user list and cached or persisted chat history, sends a message that is stored and broadcast to all clients, and is removed from the connected-user list on disconnect. The server uses SignalR hubs and a LINQ-to-SQL context for chat history. The supplied excerpts do not show the browser page’s SignalR calls or the database mapping implementation, so those links are left unverified.
Main entry points: ChatHub.cs Chat hub · index.html Chat page · jquery.signalR-2.1.2.js SignalR client · Startup.cs SignalR setup
Components 10
Browser client
- Chat page
ChatSite/ChatSite/index.html - SignalR client
ChatSite/ChatSite/Scripts/jquery.signalR-2.1.2.js
Realtime server
- SignalR setup
ChatSite/ChatSite/Startup.cs - Chat hub
ChatSite/ChatSite/ChatHub.cs - Users and cache
ChatSite/ChatSite/ChatHub.cs - Chat message model
ChatSite/ChatSite/ChatHub.cs
Chat persistence
- LINQ data context
ChatSite/ChatSite/Chat.designer.cs - History entity extension
ChatSite/ChatSite/Chat.cs - Chat history store
ChatSite/ChatSite/Chats DB Script.sql
Other components
- Chat user
Connections 8
- Chat user → Chat page: uses
- Chat page → SignalR client: uses
- SignalR client → SignalR setup: connects
- SignalR setup → Chat hub: maps SignalR
- Chat hub → Users and cache: tracks users
ChatSite/ChatSite/ChatHub.cs - Chat hub → Chat message model: builds messages
ChatSite/ChatSite/ChatHub.cs - Chat hub → LINQ data context: queries and saves
ChatSite/ChatSite/ChatHub.cs - LINQ data context → Chat history store: reads and writes