Realtime: SSE и Socket.IO
Поток событий /api/events и протокол печати через Socket.IO.
4 мин чтения#api#realtime#sse#socket.io#события
Для обновлений в реальном времени SmartDelivery использует два канала: Server-Sent Events для веб-клиента и Socket.IO для агентов печати.
SSE — поток событий
GET
/api/events?restaurantId={id}— подписка на события ресторанаconst es = new EventSource(
"https://api.smartdelivery.ru/api/events?restaurantId=12"
);
es.onmessage = (e) => {
const event = JSON.parse(e.data);
console.log(event.type, event.payload);
};Сервер шлёт события через broadcastEvent() — например, при появлении нового заказа или смене статуса.
Socket.IO — агенты печати
Десктопный print-agent подключается по Socket.IO и обменивается событиями протокола печати:
register_agent— регистрация агента.print_job— задание на печать чека.print_success/print_error— результат.
Инфо
Socket.IO-протокол предназначен для собственного агента печати, а не для произвольных интеграций. Для внешних подписок используйте SSE.
