انتقل إلى المحتوى

الخطوات الأولى ​

لا تحتاج هذه الجلسة إلى شيء سوى Signal Lab: كل شيء يذهب إلى 127.0.0.1، أي هذا الكمبيوتر، فلا دخل فيها لأي جهاز أو شبكة أو قاعدة جدار حماية. وفيها:

  1. إرسال رسالة OSC ومشاهدة وصولها؛
  2. رؤية الرسالة نفسها في الفاحص؛
  3. حفظها في المكتبة وإرسالها مجددًا من أي مكان؛
  4. تشغيل واجهة HTTP API محاكاة وسؤالها عن شيء؛
  5. تشغيل تجربة على تلك الواجهة، ومعرفة سبب فشلها، وإصلاحها، وإضافة تحقق.

إن لم يُثبَّت Signal Lab بعد، فالتفاصيل في التثبيت والتحديث. ولمعرفة مكان أي شيء في النافذة: النافذة.

إرسال رسالة OSC ومشاهدة وصولها ​

أولًا، ما يستقبل الرسالة: مراقب شاشة OSC.

  1. فتح شاشة OSC من الشريط الجانبي.
  2. في قسم المراقب، تعيين الحقل عنوان الاستماع إلى 127.0.0.1:9000، فلا يستمع المراقب إلا على هذا الكمبيوتر.
  3. الضغط على الزر الاستماع. يصبح الزر إيقاف، وتذكر وحدة التحكم أن المراقب يستمع، ويظهر المراقب مهمةً في شريط اللوحة السفلية.

والآن الرسالة، من المرسِل المجاور له:

  1. في قسم المرسِل، إبقاء الحقل الهدف (host:port) على 127.0.0.1:9000، وهو المنفذ الذي يستمع عليه المراقب.
  2. إبقاء الحقل عنوان OSC على /hello/avatar/1 ووسيطة float الوحيدة في قسم الوسائط على 1.0 — أو كتابة عنوان وقيم أخرى.
  3. الضغط على إرسال، أو على Enter في حقل الهدف أو العنوان.

يظهر سطر في جدول المراقب بأعمدته: الوقت الذي وصلت فيه الرسالة، ومن (127.0.0.1 والمنفذ الذي أُرسلت منه)، والعنوان، والوسائط. وتحت المرسِل، يؤكد سطرٌ ما أُرسل وحجمه بالبايت؛ ومع تكرار الإرسال يعدّ مرات التكرار.

تنبيه بشأن جدار الحماية؟

على Windows، قد يُظهر بدء المراقب تنبيهًا تحت الشريط العلوي بشأن جدار حماية Windows. وهو يخص الرسائل الواردة من أجهزة أخرى؛ أما حركة المرور على 127.0.0.1 فلا تخضع للتصفية أبدًا. يُضغط الزر ليس الآن في الوقت الحالي — وتشرح صفحة تنبيه جدار الحماية متى يُسمح به.

رؤيتها في الفاحص ​

يسجّل الفاحص كل إطار ترسله أي أداة وتستقبله — لكن فقط ما دام الالتقاط مفعّلًا.

  1. فتح علامة التبويب الفاحص في اللوحة السفلية.
  2. الضغط على الزر تفعيل الالتقاط. تضيء نقطة العلامة.
  3. العودة إلى المرسِل والضغط على إرسال مرة أخرى.

يظهر صفّان، الأحدث أولًا: الرسالة كما أُرسلت (→) وكما استقبلها المراقب (←)، ولكلٍّ منهما بروتوكوله، وعنوان الطرف الآخر، وحجمه، وملخصه. وبالنقر على أحدهما يعرض قسم تفاصيل الإطار الأداة التي أرسلته أو استقبلته وعلى أي عناوين، والرسالة في قسم مفكوك الترميز، وما تكوّنت منه في قسم البايتات.

يُضغط الزر إيقاف الالتقاط عند الانتهاء؛ ولا يكلّف الالتقاط شيئًا ما دام متوقفًا. المزيد في الفاحص.

حفظها إشارةً وإرسالها مجددًا ​

الرسالة التي ستُحتاج مجددًا مكانها مكتبة الإشارات.

  1. في شاشة OSC، الضغط على حفظ… تحت المرسِل.
  2. في نافذة الحفظ في المكتبة، تعيين الحقل الاسم إلى First message والحقل المجلد إلى Tutorial — يُنشأ المجلد الجديد عند الحفظ فيه.
  3. الضغط على حفظ.

صار المرسِل الآن مرتبطًا بتلك الإشارة: يعرض الزر محفوظة، وتُظهر شارة بجانبه مكان الإشارة. وعند تغيير الوسيطة تشير الشارة إلى التغيير؛ والزر حفظ (Ctrl+S) يحدّث الإشارة حينئذٍ.

والآن إرسالها مجددًا، بثلاث طرق:

  • من المكتبة. بالنقر على الشارة تُفتح شاشة الإشارات والإشارة محددة في المجلد Tutorial (أو تُفتح شاشة الإشارات ويُنقر عليها هناك). ثم يُضغط إرسال، أو Ctrl+Enter؛ والنقر المزدوج عليها في القائمة يرسلها أيضًا.
  • من أي مكان. على أي شاشة، يُضغط Ctrl+K، ويُكتب first، ثم يُضغط Enter.
  • من تجربة. عند إضافة عقدة، تسرد القائمة الإشارات تحت الإشارات المحفوظة، جاهزةً لتصبح خطوة ترسل إحداها.

وفي كل مرة، يُظهر المراقب وصول الرسالة وتذكر وحدة التحكم اسم الإشارة. والإشارة ترسل بالضبط ما كانت شاشتها سترسله. المزيد في الإشارات.

وعند الانتهاء من OSC، يُضغط إيقاف في المراقب.

مخاطبة واجهة API محاكاة ​

يأتي Signal Lab بخمسة محاكيات، كلها على 127.0.0.1. أحدها، المحاكي API تجريبية، واجهة HTTP API على 127.0.0.1:8080 بهذه المسارات:

الطلبالرد
GET /health200 مع {"status":"ok","time":"…"} — الوقت الحالي
GET /users/:id200 مع المستخدم صاحب ذلك المعرّف، مثل {"id":"42","name":"User 42"}
POST /users201 مع ترويسة Location والمعرّف الجديد
GET /slow200 بعد 1.5 ثانية
أي طريقة، /flaky503، ثم 503، ثم 200 من الطلب الثالث فصاعدًا
أي شيء آخر404
  1. فتح شاشة المحاكيات، حيث يسرد قسم المكتبة المحاكيات الخمسة، وتحديد API تجريبية.
  2. الضغط على بدء. صار المحاكي يجيب على 127.0.0.1:8080 ويعمل مهمةً.
  3. فتح شاشة HTTP. الطريقة GET؛ ويُعيَّن URL إلى http://127.0.0.1:8080/health.
  4. الضغط على إرسال، أو على Enter في حقل URL.

في قسم الاستجابة تظهر الحالة 200، وزمن الانتقال، والحجم، وترويسات الاستجابة، ومتن JSON. ويُرسل http://127.0.0.1:8080/flaky ثلاث مرات: ردّان بـ 503، ثم 200 — وهكذا تبدو الخدمة التي تتعافى للعميل الذي يعيد المحاولة.

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

تشغيل تجربة ​

التجربة تدفق من الخطوات يمكن تشغيله مرة بعد مرة. والتجربة التي يفتح عليها Signal Lab في المرة الأولى — القالب تحقق HTTP — ترسل طلبًا إلى http://127.0.0.1:8080/ وتتحقق من أن الرد 200.

فتح القالب ​

  1. فتح شاشة التجارب.
  2. إن لم تعرض لوحة الرسم أربع عقد — البداية، وطلب HTTP، وحالة HTTP، والنهاية — يُضغط ☰ في يمين شريط الأدوات (التجارب)، ويُختار تحقق HTTP في قائمة القوالب، ثم يُضغط فتح تجربة. والفتح يستبدل التجربة الموجودة على لوحة الرسم؛ ويعيد Ctrl+Z التجربة السابقة.

وبالنقر على عقدة تظهر إعداداتها في لوحة الخصائص على اليسار. وتحفظ التجارب نفسها أثناء التعديل.

تشغيلها ومعرفة سبب فشلها ​

  1. الضغط على تشغيل التجربة.

يُفتح الخط الزمني للتشغيل تحت لوحة الرسم، بصف لكل خطوة عند بدئها (قيد التشغيل) ومرة أخرى عند انتهائها: الوقت، والعقدة، وكيف جرت. وهذا التشغيل يفشل:

  • تنجح العقدة البداية وتذكر بذرة التشغيل.
  • تنجح العقدة طلب HTTP: خرج الطلب وعاد رد، HTTP 404.
  • تفشل العقدة حالة HTTP: توقعت 200 واستقبلت 404.

ليس لدى المحاكي API تجريبية مسار لـ /، فأجاب بـ 404 — واكتشف التحقق ذلك. ويعرض السطر أعلى الخط الزمني فشل مع السبب. وبالنقر على صف تُحدَّد عقدته على لوحة الرسم.

هل فشل الطلب نفسه؟

إذا فشلت خطوة طلب HTTP برفض الاتصال، فلا شيء يستمع على 127.0.0.1:8080: يُشغَّل المحاكي API تجريبية من شاشة المحاكيات ثم تُشغَّل التجربة مجددًا.

إصلاح الطلب ​

  1. النقر على العقدة طلب HTTP.
  2. في لوحة الخصائص، تغيير الحقل URL إلى http://127.0.0.1:8080/health.
  3. الضغط على تشغيل التجربة.

هذه المرة تنجح كل الخطوات: تعرض العقدة حالة HTTP العبارة الشرط متحقق، وتعرض العقدة النهاية العبارة اكتمل، ويعرض عنوان الخط الزمني نجح.

إضافة تحقق ​

الحالة 200 تقول إن الخدمة أجابت، لكنها لا تقول بماذا أجابت. لذا يُتحقق من المتن أيضًا:

  1. النقر على العقدة حالة HTTP.
  2. في لوحة الخصائص، الضغط على إضافة تالية — أو الضغط على A ولوحة الرسم في حالة التركيز. تُفتح قائمة بالعقد مع حقل بحث.
  3. كتابة assert_body والضغط على Enter. تُضاف عقدة نص الاستجابة بين حالة HTTP والنهاية، موصولةً مسبقًا، وحقلها يحتوي على النص جاهز للكتابة.
  4. كتابة "status":"ok".
  5. الضغط على تشغيل التجربة.

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

ما يتركه التشغيل ​

  • تقرير. عند انتهاء التشغيل، يظهر حُفظ التقرير في عنوان الخط الزمني؛ ويظهر الملف بتمرير المؤشر فوقه. والتشغيل الذي ينتهي، ناجحًا أو فاشلًا، يكتب تقريرًا في المجلد runs داخل مجلد البيانات، مع القيم التي استخدمها وكل خطوة. وفي المتصفح يكون رابط تنزيل.
  • بذرة. ويعرض العنوان أيضًا بذرة التشغيل مع الزر تثبيت: القيم العشوائية في التشغيل تتبع بذرته، وتثبيتها يكرر تلك القيم بالضبط.

المزيد في التشغيلات والتقارير.

التنظيف ​

يُضغط إيقاف الكل في الشريط العلوي: فيوقف المحاكي API تجريبية وكل ما لا يزال يعمل. وتبقى الإشارة والتجربة وتقاريرها في مجلد البيانات.

إلى أين بعد ذلك ​

  • المفاهيم: الأفكار التي تقوم عليها الشاشات والإشارات والمهام والمحاكيات والتجارب.
  • التجارب: المحرر بكامله، وكل أنواع العقد في العقد.
  • OSC وHTTP وصفحات البروتوكولات الأخرى، عند توجيه Signal Lab إلى معدات حقيقية.
  • سطر الأوامر: تشغيل التجربة نفسها من الطرفية أو من خط CI.