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

اتصال و عضویت

GET 

/connection/websocket

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

آدرس‌های اتصال:

  • اصلی: wss://ws.nobitex.ir/connection/websocket
  • تست‌نت: wss://testnetws.nobitex.ir/connection/websocket

کاربرد این صفحه:

  • اتصال به وب‌سوکت
  • عضویت در کانال‌های عمومی
  • مدیریت ping/pong و محدودیت‌های اتصال

برای کانال‌های خصوصی، ابتدا از /auth/ws/token/ توکن اتصال بگیرید و سپس با توکن وصل شوید. جزئیات در صفحه «توکن اتصال خصوصی» آمده است.

محدودیت‌ها و رفتار اتصال:

  • کانال‌های عمومی بدون توکن قابل استفاده هستند.
  • حداکثر اتصال هم‌زمان: ۱۰۰ اتصال
  • حداکثر تعداد کانال روی هر اتصال: ۳۰۰ کانال
  • سرور پیام ping خالی {} می‌فرستد و کلاینت خام باید ظرف ۲۰ ثانیه pong خالی {} برگرداند.
  • SDKهای رسمی Centrifugo معمولا ping/pong را خودکار مدیریت می‌کنند.
  • برای بازیابی پیام‌ها، ۱۰ پیام آخر هر کانال تا ۱۰ دقیقه در تاریخچه نگه‌داری می‌شود.
  • در SDKهای رسمی می‌توانید هنگام عضویت گزینه { delta: 'fossil' } را فعال کنید. این گزینه باعث کاهش حجم انتقال می‌شود و SDK رسمی داده را به شکل عادی به تابع بازگشتی تحویل می‌دهد.
  • اگر از کلاینت خام یا کتابخانه غیررسمی استفاده می‌کنید، گزینه delta را فعال نکنید مگر اینکه بازیابی داده با الگوریتم Fossil را پیاده‌سازی کرده باشید.

نصب SDK جاوااسکریپت:

npm install centrifuge

اتصال عمومی با SDK:

import { Centrifuge } from 'centrifuge';

const client = new Centrifuge('wss://ws.nobitex.ir/connection/websocket');

client.on('connected', (ctx) => {
console.log('connected', ctx);
});

client.connect();

عضویت در کانال عمومی با SDK:

const sub = client.newSubscription('public:trades-BTCIRT', { delta: 'fossil' });

sub.on('publication', (ctx) => {
console.log(ctx.data);
});

sub.subscribe();

استفاده مستقیم در HTML:

<script src="https://unpkg.com/centrifuge@5/dist/centrifuge.js"></script>

اتصال خام بدون SDK:

{
"connect": {},
"id": 1
}

عضویت در چند کانال با یک اتصال:

const channels = ['public:orderbook-BTCIRT', 'public:trades-BTCIRT'];

channels.forEach((channel) => {
const sub = client.newSubscription(channel, { delta: 'fossil' });
sub.on('publication', (ctx) => {
console.log(channel, ctx.data);
});
sub.subscribe();
});

Responses

اتصال وب‌سوکت برقرار شد