Khi bạn cần nhận thông báo tức thì về các sự kiện quan trọng — lời mời BTC, kết quả trận, phân công trọng tài, cập nhật giải — mà không cần tải lại trang.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Chuông thông báo (Bell) | button | Icon hình chuông trên thanh nav. Hiển thị badge số thông báo chưa đọc (tối đa 99+). Bấm để mở dropdown danh sách thông báo. |
| 2 | Thông báo đơn lẻ | link | Mỗi dòng trong danh sách là một thông báo. Bấm để đọc (đánh dấu đã đọc) và điều hướng đến trang liên quan (ví dụ: trang quản lý giải, trang trận, trang lời mời). |
| 3 | Đánh dấu tất cả đã đọc | button | Đánh dấu toàn bộ thông báo chưa đọc thành đã đọc trong một lần bấm. Badge số trên chuông về 0. |
| 4 | Cài đặt thông báo | link | Link dẫn đến trang cài đặt thông báo, nơi bạn chọn loại thông báo muốn nhận (tournament, matches, referee, registration, results). |
SportUp dùng SignalR (WebSocket với fallback long-polling). Khi bạn đăng nhập, frontend tự thiết lập kết nối với hub /hubs/notifications. Mỗi sự kiện backend (phân công trọng tài, kết quả trận, lời mời BTC...) được push ngay lập tức mà không cần tải lại trang.
Thông báo realtime dùng SignalR (WebSocket) để gửi thông báo đến trình duyệt ngay khi có sự kiện mới — không cần tải lại trang. Chuông thông báo trên thanh nav hiển thị số thông báo chưa đọc và cập nhật tức thì. Mỗi vai trò nhận thông báo phù hợp: player nhận kết quả trận và cập nhật giải; organizer nhận biên lai thanh toán và lời mời BTC; referee nhận phân công trận.
Tính năng này luôn hoạt động nền sau khi bạn đăng nhập — không cần kích hoạt thủ công. Mở dropdown chuông khi bạn thấy badge số để xem và xử lý các thông báo mới nhất.
Sau khi đăng nhập, frontend tự thiết lập kết nối SignalR với hub thông báo. Kết nối duy trì trong suốt phiên làm việc và tự reconnect nếu mạng bị gián đoạn.
Khi có sự kiện mới (phân công trọng tài, kết quả trận, biên lai mới, lời mời BTC...), server push thông báo qua WebSocket. Badge số trên chuông tăng lên ngay lập tức mà không cần tải lại trang.
Bấm vào chuông thông báo để mở dropdown. Danh sách hiển thị 20 thông báo gần nhất, thông báo chưa đọc được làm nổi bật. Bấm vào từng thông báo để đánh dấu đã đọc và điều hướng đến nội dung liên quan.
Bấm Đánh dấu tất cả đã đọc để xử lý toàn bộ thông báo một lần. Badge số về 0. Thông báo vẫn được lưu trong danh sách — chỉ trạng thái "chưa đọc" được xóa.
Vào Cài đặt thông báo để chọn nhóm thông báo muốn nhận. Tắt nhóm không cần thiết để giảm nhiễu — ví dụ referee không cần nhận thông báo về biên lai thanh toán.