Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 91 additions & 7 deletions source/includes/_websocket.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,14 +140,10 @@ sub.subscribe();
```json
{
"asks": [
["35077909990", "0.009433"],
["35078000000", "0.000274"],
["35078009660", "0.00057"]
["35077909990", "0.009433"], ["35078000000", "0.000274"], ["35078009660", "0.00057"]
],
"bids": [
["35020080080", "0.185784"],
["35020070060", "0.086916"],
["35020030010", "0.000071"]
["35020080080", "0.185784"], ["35020070060", "0.086916"], ["35020030010", "0.000071"]
],
"lastTradePrice": "35077909990",
"lastUpdate": 1726581829816
Expand All @@ -161,7 +157,16 @@ sub.subscribe();
"push": {
"channel": "public:orderbook-BTCIRT",
"pub": {
"data": "{\"asks\": [[\"35077909990\", \"0.009433\"], [\"35078000000\", \"0.000274\"], [\"35078009660\", \"0.00057\"]], \"bids\": [[\"35020080080\", \"0.185784\"], [\"35020070060\", \"0.086916\"], [\"35020030010\", \"0.000071\"]], \"lastTradePrice\": \"35077909990\", \"lastUpdate\": 1726581829816}",
"data": {
"asks": [
["35077909990", "0.009433"], ["35078000000", "0.000274"], ["35078009660", "0.00057"]
],
"bids": [
["35020080080", "0.185784"], ["35020070060", "0.086916"], ["35020030010", "0.000071"]
],
"lastTradePrice": "35077909990",
"lastUpdate": 1726581829816
},
"offset": 989153
}
}
Expand Down Expand Up @@ -194,3 +199,82 @@ sub.subscribe();
| `lastTradePrice` | string | مبلغ آخرین معامله | <code dir="ltr">"35602702700"</code> |
| `lastUpdate` | int | زمان آخرین به‌روزرسانی به فرمت یونیکس | <code dir="ltr">1726651067347</code> |


<h2 id="websocket-trades">استریم معاملات</h2>

کانال‌هایی با پیشوند زیر شامل معاملات بازارها هستند و با انجام هر معامله، به مشترکین پیام ارسال می‌کنند:

**الگوی کانال‌های معاملات:** <code dir="ltr">public:trades-*</code>


```javascript
const sub = client.newSubscription('public:trades-BTCIRT', { delta: 'fossil' });
sub.on('subscribed', (ctx) => {
console.log('subscribed');
});
sub.on('publication', (ctx) => {
console.log(ctx.data);
});
sub.subscribe();
```

> در صورتی که از SDK استفاده نمی‌کنید پیام زیر را ارسال نمایید:

```json
{
"id": 2,
"subscribe": {
"channel": "public:trades-BTCIRT"
}
}
```

> که در کنسول، پیامی که `console.log` نموده‌اید به شکل زیر خواهد بود که همان مقدار `data` می‌باشد:

```json
{
"time": 1728114934350,
"price": "670000000000",
"volume": "0.000001",
"type":"buy"
}
```

> همچنین اگر از SDK رسمی استفاده نمی‌کنید، در صورت اتصال و اشتراک صحیح، پیام‌های دریافتی از کانال به شکل زیر خواهد بود:

```json
{
"push": {
"channel": "public:trades-BTCIRT",
"pub": {
"data": {
"time": 1728114934350,
"price": "67000000",
"volume": "0.0112",
"type": "buy"
},
"offset": 989153
}
}
}
```

<aside class="notice">
به‌جای <code>*</code> باید سمبل بازار مربوطه را به‌شکل UPPERCASE (حروف بزرگ) قرار دهید. مثلاً <code>BTCIRT</code> و یا <code>ETHUSDT</code> و ...
</aside>



**مثال:** برای دریافت معاملات بیت‌کوین به ریال، کافیست به کانال `public:trades-BTCIRT` متصل شوید.


### پارامترهای پاسخ


| پارامتر پاسخ | نوع | توضیحات | نمونه |
|--------------|--------|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| `time` | int | زمان دقیق انجام شدن معامله با فرمت [یونیکس](https://fa.wikipedia.org/wiki/%D8%B3%D8%A7%D8%B9%D8%AA_%DB%8C%D9%88%D9%86%DB%8C%DA%A9%D8%B3) | <code dir="ltr">1728114934350</code> |
| `price` | string | قیمت | <code dir="ltr">"67000000"</code> |
| `volume` | string | حجم معامله | <code dir="ltr">"0.0112"</code> |
| `type` | string | نوع معامله (خرید یا فروش) | <code dir="ltr">"buy"</code> |