whitemarket Документація для партнерів

SSE

Server-Sent Events (SSE) — це технологія, яка дозволяє серверу надсилати оновлення безпосередньо клієнту, не вимагаючи запитів клієнта. SSE забезпечує односторонній зв’язок від сервера до клієнта через протокол HTTP, пропонуючи простий і ефективний спосіб передачі даних у реальному часі. На відміну від WebSocket, який підтримує двонаправлений зв’язок, SSE фокусується на передачі даних, ініційованій сервером, що робить його ідеальним для таких випадків використання, як оновлення стрічок новин, спортивних результатів та інших сценаріїв, де безперервні оновлення від сервера до клієнта є важливими.

Кінцева точка

https://api.white.market/sse_endpoint

Майданчик для тестів

Майданчик для тестів

Приклад на JS для підключення

    const url = new URL('https://api.white.market/sse_endpoint');
    const token = '<Place here JWT token from auth_token mutation>'    

    url.searchParams.append("cf_connect", JSON.stringify({
        'token': token,
        'debug': true,
        'subs': {"market_products_updates":{}}
    }));

    const es = new EventSource(url);

    es.addEventListener("open", (event) => {
        console.log('Open');
    });

    es.addEventListener("message", (event) => {
        console.log(event.data.message); // event.data.message contain JSON encoded string. See format below.
    });

    es.addEventListener("error", (event) => {
        if (event.type === "error") {
            console.log('Error', event.message);
        } else if (event.type === "exception") {
            console.log('Error', event.message + ' ' + event.error);
        }
    });

    es.addEventListener("close", (event) => {
        console.log('Close');
    });

Загальний формат

{
   "channel":"CHANNEL_NAME",
   "pub":{
      "data":{
         "message":"ENCODED_AND_ESCAPED_JSON_CONTENT"
      }
   }
}

При отриманні вам потрібно скасувати екранування та декодувати json, щоб отримати дані

Приклад

{
   "channel":"market_products_updates",
   "pub":{
      "data":{
         "message":"{\"type\":\"market_product_added\",\"content\":{\"id\":\"1ef6c2b5-7f94-67c0-8e23-0242ac15000b\",\"app_id\":\"730\",\"asset_id\":\"36857146063\",\"class_id\":\"469440539\",\"instance_id\":\"302028390\",\"price\":\"0.020\",\"name_hash\":\"G3SG1 | Green Apple (Minimal Wear)\",\"inspect_url\":\"steam:\\\/\\\/rungame\\\/730\\\/76561202255233023\\\/+csgo_econ_action_preview%20S76561198283251328A36857146063D14015389653147072601\",\"delivery_type\":\"semi\"}}"
      }
   }
}

Повідомлення

Натисніть тут