> ## Documentation Index
> Fetch the complete documentation index at: https://docs.benzinga.com/llms.txt
> Use this file to discover all available pages before exploring further.

# المقدمة

> مقدمة موجزة عن بث البيانات اللحظية باستخدام واجهة برمجة التطبيقات API للويب سوكيت من Benzinga.

مرحبًا بك في توثيق واجهة برمجة التطبيقات API للويب سوكيت من Benzinga. سيساعدك هذا الدليل على البدء في الوصول إلى تدفقات بيانات Benzinga اللحظية، مما يتيح لك الاشتراك في تحديثات مستمرة لبيانات الأسواق المالية، بما في ذلك أسعار السوق اللحظية، والصفقات، والأخبار، وغير ذلك من الرؤى الأساسية الأخرى.

<div id="websocket-endpoint">
  ## نقطة نهاية ويب سوكيت
</div>

يمكن إقامة جميع اتصالات ويب سوكيت عبر نقطة النهاية التالية:

```
wss://api.benzinga.com
```

<div id="authentication">
  ## المصادقة
</div>

تتطلّب واجهة برمجة التطبيقات API الخاصة بـ Benzinga عبر ويب سوكيت مصادقة بنظام Bearer. عند بدء اتصال ويب سوكيت، ضمِّن رمز الوصول الخاص بواجهة برمجة التطبيقات API في عنوان `URL` الاتصال كمعامل استعلام بالصيغة التالية:
يجب عليك تضمين رمز الوصول الخاص بواجهة برمجة التطبيقات API في معامل الاستعلام `token` بالصيغة `token: &lt;token&gt;`.

راجع صفحة [المصادقة](./authentication) لمزيد من المعلومات حول الحصول على رمز الوصول لواجهة برمجة التطبيقات API وإدارته.

<div id="subscribing-to-streams">
  ## الاشتراك في التدفقات
</div>

بعد إنشاء الاتصال، يمكنك الاشتراك في تدفقات بيانات معينة استنادًا إلى احتياجاتك، مثل أسعار الأسهم، بيانات التداول، أو تحديثات الأخبار. يتطلب كل اشتراك مُعرّفًا فريدًا ومعلمات محددة اعتمادًا على نوع البيانات.

<div id="example-subscription-message">
  ### مثال على رسالة اشتراك
</div>

للاشتراك في تدفق أسعار الأسهم المباشرة، أرسل رسالة بتنسيق JSON على النحو التالي:

```json theme={null}
{
  "action": "subscribe",
  "symbol": "AAPL",
  "type": "quote"
}
```

<div id="heartbeat-mechanism">
  ## آلية النبض
</div>

للحفاظ على اتصال مستقر وضمان بقاء العميل والخادم متزامنين، تتضمن واجهة برمجة التطبيقات ويب سوكيت من Benzinga آلية نبض.

<div id="client-side-heartbeat">
  ### نبضات من جانب العميل
</div>

* إذا أرسلت رسالة ping كإطار نص عادي (على سبيل المثال، النص `ping`)، فسيستجيب الخادم برسالة pong كنص عادي (على سبيل المثال، النص `pong`).

* يمكن استخدام ذلك للتحقق من بقاء الاتصال نشطًا وقابلًا للاستجابة.

<div id="example">
  #### مثال
</div>

* يرسل العميل: `ping`

* يرد الخادم: `pong`

<div id="server-side-heartbeat">
  ### نبضات من جانب الخادم
</div>

* سيقوم الخادم تلقائيًا بإرسال إطار ping إلى العميل كل 10 ثوانٍ لضمان بقاء الاتصال نشطًا.

* يُتوقَّع من العميل الرد على إطار الـ ping هذا (وهو ما تتولاه تلقائيًا معظم مكتبات ويب سوكيت).

<div id="handling-heartbeats">
  ### التعامل مع نبضات الاتصال (Heartbeats)
</div>

* أغلب مكتبات عميل WebSocket (مثل تلك في JavaScript أو Python أو Go) تتعامل تلقائيًا مع رسائل `ping` الواردة من الخادم وترد برسالة `pong`.

* ومع ذلك، إذا كنت تطوّر عميل WebSocket مخصصًا، فتأكّد من أنه يستجيب بشكل صحيح لإطارات `ping` من الخادم لمنع إنهاء الاتصال.

<div id="rate-limiting">
  ## تقييد المعدل
</div>

يرجى ملاحظة أن واجهة برمجة التطبيقات API الخاصة بـ Benzinga لديها حدود لمعدل الطلبات لمنع سوء الاستخدام وضمان استقرار الخدمة. يُسمح باتصال واحد فقط لكل رمز وصول لواجهة برمجة التطبيقات في الوقت نفسه. إذا تجاوزت حد المعدل، ستتلقى استجابة خطأ.

***

نأمل أن يساعدك هذا الدليل على البدء في استخدام واجهة برمجة التطبيقات API من Benzinga. إذا كانت لديك أي أسئلة، فلا تتردد في التواصل مع فريق الدعم لدينا.
