پرش به مطلب اصلی

دریافت قیمت لحظه‌ای همه بازارها​

این کانال برای دریافت قیمت لحظه‌ای تمام بازارهای فعال در والکس طراحی شده است و به‌صورت پیوسته، اطلاعات قیمتی جدید را برای مارکت‌هایی که قیمت آن‌ها تغییر کرده است ارسال می‌کند.

با استفاده از این کانال می‌توانید بدون نیاز به عضویت جداگانه در هر مارکت، تغییرات قیمت همه‌ی بازارها را در لحظه دریافت کرده و آن‌ها را در جدول‌ها، داشبوردها یا ویجت‌های قیمت نمایش دهید.

توجه داشته باشید که پیام همه‌ی مارکت‌ها را دریافت می‌کنید، صرف‌نظر از اینکه کاربر در حال مشاهده‌ی کدام مارکت می‌باشد. در صورتی که فقط به چند مارکت نیاز دارید، در سمت خودتان بر اساس symbol فیلتر کنید.

جهت دریافت این کانال سه روش وجود دارد.

ورژن ۱ (منسوخ شده)​

منسوخ شده

ورژن ۱ (wss://api.wallex.ir/ws) منسوخ شده است. این ورژن هنوز کار می‌کند، اما کانال‌های جدید مانند قیمت منصفانه و کندل چارت فقط روی ورژن ۲ (سنتریفیگو) در دسترس هستند.

برای پیاده‌سازی جدید از ورژن ۲ استفاده کنید. برای انتقال کد فعلی، راهنمای مهاجرت را ببینید.

آدرس اتصال WebSocket​

برای اتصال باید از آدرس زیر استفاده کنید.

wss://api.wallex.ir/ws

فرمت پیام Subscribe​

جهت دریافت قیمت تمامی کوین‌ها باید پیام خود را در قالب زیر ارسال کنید.

["subscribe", { "channel": "all@price" }]

نمونه پاسخ دریافتی​

پس از ارسال پیام در سوکت، جواب‌هایی که دریافت می‌کنید به‌صورت زیر می‌باشد.

فیلدنوعتوضیح
symbolStringنماد بازار، مانند USDTTMN یا BTCUSDT
priceString (decimal)قیمت لحظه‌ای فعلی
24h_chNumberدرصد تغییر قیمت در ۲۴ ساعت گذشته، با حداکثر دو رقم اعشار. اگر داده‌ی ۲۴ ساعت گذشته موجود نباشد، مقدار آن 0 است.

پاسخ یک آرایه‌ی دوتایی می‌باشد که عضو اول آن نام کانال و عضو دوم آن بدنه‌ی پیام است.

[
"all@price",
{
"symbol": "USDTTMN",
"price": "199092",
"24h_ch": -0.74
}
]

نکته‌ها​

  • توجه داشته باشید که عضو شدن در این کانال هیچ قیمتی برای شما ارسال نمی‌کند و اولین پیام زمانی می‌رسد که قیمت یکی از مارکت‌ها تغییر کند.
  • محدودیت‌ها، پیام‌هایی که داده‌ی کانال نیستند و نحوه‌ی لغو عضویت در جزئیات ورژن ۱ (منسوخ شده) آمده است.

ورژن ۲ (سنتریفیگو) با SDK​

آدرس اتصال WebSocket​

برای اتصال باید از آدرس زیر استفاده کنید.

wss://api.wallex.ir/connection/websocket

نام کانال​

public:all@price

نمونه کد عضویت​

const prices = client.newSubscription("public:all@price");
prices.on("publication", (ctx) => console.log(ctx.data));
prices.subscribe();

نمونه پاسخ دریافتی​

پس از عضویت، هر تغییر قیمت در رویداد publication به شما تحویل داده می‌شود و بدنه‌ی آن در ctx.data قرار دارد.

فیلدنوعتوضیح
symbolStringنماد بازار، مانند USDTTMN یا BTCUSDT
priceString (decimal)قیمت لحظه‌ای فعلی
24h_chNumberدرصد تغییر قیمت در ۲۴ ساعت گذشته، با حداکثر دو رقم اعشار. اگر داده‌ی ۲۴ ساعت گذشته موجود نباشد، مقدار آن 0 است.
{
"symbol": "USDTTMN",
"price": "199092",
"24h_ch": -0.74
}

نکته‌ها​

  • توجه داشته باشید که عضو شدن در این کانال هیچ قیمتی برای شما ارسال نمی‌کند و اولین پیام زمانی می‌رسد که قیمت یکی از مارکت‌ها تغییر کند.
  • این کانال تاریخچه نگه نمی‌دارد، بنابراین قیمت‌هایی که در زمان قطعی اتصال منتشر شده‌اند دوباره ارسال نمی‌شوند.
  • نام ticker:all@price دیگر معتبر نمی‌باشد و با خطای 102: unknown channel رد می‌شود.
  • پاسخ دادن به ping سرور توسط SDK انجام می‌شود. جزئیات در اتصال و عضویت آمده است.

ورژن ۲ (سنتریفیگو) بدون SDK​

آدرس اتصال WebSocket​

برای اتصال باید از آدرس زیر استفاده کنید.

wss://api.wallex.ir/connection/websocket

نام کانال​

public:all@price

فرمت پیام Subscribe​

جهت دریافت قیمت تمامی کوین‌ها باید دستور زیر را ارسال کنید.

{ "id": 3, "subscribe": { "channel": "public:all@price" } }

پاسخ موفق این دستور خالی می‌باشد.

{ "id": 3, "subscribe": {} }

نمونه پاسخ دریافتی​

پس از ارسال پیام در سوکت، جواب‌هایی که دریافت می‌کنید به‌صورت زیر می‌باشد و بدنه‌ی پیام داخل پوشش push قرار دارد.

فیلدنوعتوضیح
symbolStringنماد بازار، مانند USDTTMN یا BTCUSDT
priceString (decimal)قیمت لحظه‌ای فعلی
24h_chNumberدرصد تغییر قیمت در ۲۴ ساعت گذشته، با حداکثر دو رقم اعشار. اگر داده‌ی ۲۴ ساعت گذشته موجود نباشد، مقدار آن 0 است.
{
"push": {
"channel": "public:all@price",
"pub": {
"data": { "symbol": "USDTTMN", "price": "199092", "24h_ch": -0.74 }
}
}
}

نکته‌ها​

  • توجه داشته باشید که عضو شدن در این کانال هیچ قیمتی برای شما ارسال نمی‌کند و اولین پیام زمانی می‌رسد که قیمت یکی از مارکت‌ها تغییر کند.
  • این کانال تاریخچه نگه نمی‌دارد، بنابراین قیمت‌هایی که در زمان قطعی اتصال منتشر شده‌اند دوباره ارسال نمی‌شوند.
  • نام ticker:all@price دیگر معتبر نمی‌باشد و با خطای 102: unknown channel رد می‌شود.
  • پاسخ دادن به ping سرور بر عهده‌ی خود شما می‌باشد. جزئیات در اتصال بدون SDK آمده است.