Microsoft у .NET 10 представила одну з найцікавіших можливостей — Server-Sent Events (SSE). Ця технологія дозволяє передавати події безпосередньо з сервера клієнту без використання WebSockets, SignalR чи вебхуків. Для розробників API та вебзастосунків це може значно спростити роботу з потоковою передачею даних у реальному часі.
Що таке Server-Sent Events?
Server-Sent Events (SSE) дозволяють серверу надсилати оновлення клієнту через єдиний HTTP GET-запит. Обмін даними є одностороннім: інформація надходить тільки від сервера до клієнта.
Це особливо корисно у випадках:
-
Біржові тікери та фінансові дані в реальному часі
-
Відстеження замовлень в e-commerce
-
Системи сповіщень та стрічки активності
-
Онлайн-дашборди й моніторинг
Реалізація SSE у .NET 10
Розглянемо приклад із використанням minimal API у .NET 10. Ми створимо ендпоінт /live-orders, який транслюватиме клієнтам нові замовлення в реальному часі.
Крок 1: Визначення ендпоінта
Крок 2: Створення потоку даних
Використовуємо IAsyncEnumerable, щоб постійно генерувати та відправляти об’єкти замовлень:
-
Data (у нашому випадку —
FoodOrder) -
Event ID
-
Тип події (щоб клієнт міг їх фільтрувати)
-
Інтервал повторного підключення (якщо з’єднання перерветься)
Крок 3: Використання SSE у браузері
Сучасні браузери підтримують SSE через API EventSource. Потрібно лише кілька рядків JavaScript:
Чому варто використовувати SSE замість WebSockets чи SignalR?
Хоча WebSockets і SignalR підтримують двостороннє спілкування, у багатьох випадках достатньо лише передачі даних від сервера до клієнта.
Переваги SSE:
-
Простота — працює поверх HTTP, без додаткових бібліотек
-
Легкість — менше навантаження порівняно з WebSockets
-
Підтримка браузерами — працює «з коробки»
-
Надійність — автоматичне перепідключення у разі обриву
Для сценаріїв, де потрібна лише одностороння передача даних, SSE є відмінним рішенням.
Висновок
Нова функція Server-Sent Events у .NET 10 робить створення застосунків із даними в реальному часі простішим та ефективнішим. Вона чудово підходить для фінансових дашбордів, систем замовлень чи сповіщень.
SSE — це легка альтернатива SignalR та WebSockets у випадках, коли двостороння комунікація не потрібна.
А тепер головне питання: Чи плануєте ви замінити частину своїх рішень на WebSockets або SignalR за допомогою SSE у .NET 10?
Залишити відповідь