पहले कदम
इस सेशन के लिए Signal Lab के अलावा कुछ नहीं चाहिए: सब कुछ 127.0.0.1, यानी इसी कंप्यूटर पर जाता है, इसलिए किसी डिवाइस, नेटवर्क या फ़ायरवॉल नियम की ज़रूरत नहीं पड़ती। आप:
- एक OSC संदेश भेजेंगे और उसे पहुँचते देखेंगे;
- वही संदेश इंस्पेक्टर में देखेंगे;
- उसे लाइब्रेरी में सहेजेंगे और कहीं से भी फिर भेजेंगे;
- एक एमुलेट किया गया HTTP API शुरू करेंगे और उससे कुछ पूछेंगे;
- उस API पर एक प्रयोग चलाएँगे, पढ़ेंगे कि वह क्यों विफल होता है, उसे ठीक करेंगे और एक जाँच जोड़ेंगे।
अगर आपने अभी तक Signal Lab इंस्टॉल नहीं किया है, तो देखें इंस्टॉल और अपडेट करना। पक्का नहीं कि विंडो में कोई चीज़ कहाँ है? देखें विंडो।
OSC संदेश भेजें और उसे पहुँचते देखें
पहले संदेश प्राप्त करने के लिए कुछ चाहिए: OSC स्क्रीन का मॉनिटर।
- साइडबार में OSC खोलें।
- मॉनिटर के नीचे बाइंड पता को
127.0.0.1:9000पर सेट करें, ताकि मॉनिटर केवल इसी कंप्यूटर पर सुने। - सुनें दबाएँ। बटन रोकें बन जाता है, कंसोल बताता है कि मॉनिटर सुन रहा है, और मॉनिटर निचले पैनल की पट्टी में एक जॉब के रूप में दिखता है।
अब संदेश, बगल वाले प्रेषक से:
- प्रेषक के नीचे लक्ष्य host:port को
127.0.0.1:9000पर ही रहने दें, यानी वह पोर्ट जिस पर मॉनिटर सुनता है। - OSC पता को
/hello/avatar/1पर और आर्ग्युमेंट के नीचे के एकमात्र float आर्ग्युमेंट को1.0पर रहने दें — या अपना पता और मान टाइप करें। - भेजें दबाएँ, या लक्ष्य या पते के फ़ील्ड में Enter दबाएँ।
मॉनिटर की तालिका में एक पंक्ति आती है: पहुँचने का समय, स्रोत (127.0.0.1 और वह पोर्ट जिससे इसे भेजा गया), पता और आर्ग्युमेंट। प्रेषक के नीचे एक पंक्ति पुष्टि करती है कि क्या भेजा गया और बाइट में उसका आकार; फिर भेजें, तो वह दोहराव गिनती है।
फ़ायरवॉल के बारे में कोई सूचना?
Windows पर मॉनिटर शुरू करने पर हेडर के नीचे Windows फ़ायरवॉल के बारे में एक सूचना आ सकती है। यह दूसरी मशीनों से आने वाले संदेशों के बारे में है; 127.0.0.1 पर ट्रैफ़िक कभी फ़िल्टर नहीं होता। फ़िलहाल अभी नहीं दबाएँ — फ़ायरवॉल सूचना बताती है कि अनुमति कब देनी चाहिए।
इसे इंस्पेक्टर में देखें
इंस्पेक्टर हर टूल द्वारा भेजा और प्राप्त किया गया हर फ़्रेम दर्ज करता है — लेकिन केवल तब, जब कैप्चर चालू हो।
- निचले पैनल में इंस्पेक्टर टैब खोलें।
- कैप्चर चालू करें दबाएँ। टैब का बिंदु जल उठता है।
- प्रेषक पर लौटकर भेजें एक बार और दबाएँ।
दो पंक्तियाँ आती हैं, सबसे नई सबसे ऊपर: भेजा गया संदेश (→) और मॉनिटर को मिला संदेश (←), हर एक के साथ उसका प्रोटोकॉल, दूसरे सिरे का पता, उसका आकार और सारांश। किसी एक पर क्लिक करें: फ़्रेम विवरण दिखाता है कि उसे किस टूल ने और किन पतों पर भेजा या प्राप्त किया, डिकोड किया गया के नीचे संदेश, और बाइट के नीचे वे बाइट जिनसे वह बना था।
काम पूरा होने पर कैप्चर बंद करें दबाएँ; कैप्चर बंद रहते इसका कोई ख़र्च नहीं होता। और जानकारी इंस्पेक्टर में।
इसे सिग्नल के रूप में सहेजें और फिर भेजें
जो संदेश आपको फिर चाहिए होगा, उसकी जगह सिग्नल लाइब्रेरी में है।
- OSC स्क्रीन पर प्रेषक के नीचे सहेजें… दबाएँ।
- लाइब्रेरी में सहेजें में नाम को
First messageऔर फ़ोल्डर कोTutorialपर सेट करें — जब आप किसी नए फ़ोल्डर में सहेजते हैं, तो वह बन जाता है। - सहेजें दबाएँ।
अब प्रेषक उस सिग्नल से जुड़ गया है: बटन पर सहेजा गया लिखा है, और उसके पास एक चिप दिखाती है कि सिग्नल कहाँ रखा है। आर्ग्युमेंट बदलें, तो चिप बदलाव दर्ज करती है; सहेजें (Ctrl+S) सिग्नल को अपडेट कर देगा।
अब इसे फिर भेजें, तीन तरीकों से:
- लाइब्रेरी से। चिप पर क्लिक करें: सिग्नल खुलता है, जिसमें
Tutorialफ़ोल्डर में वह सिग्नल चुना हुआ होता है (या सिग्नल खोलकर वहाँ उस पर क्लिक करें)। भेजें दबाएँ, या Ctrl+Enter; सूची में उस पर डबल-क्लिक करने से भी वह भेजा जाता है। - कहीं से भी। किसी भी स्क्रीन पर Ctrl+K दबाएँ,
firstटाइप करें, और Enter दबाएँ। - प्रयोग से। जब आप कोई नोड जोड़ते हैं, तो मेनू आपके सिग्नल सहेजे गए सिग्नल के नीचे दिखाता है, जो किसी सिग्नल को भेजने वाला चरण बनने के लिए तैयार रहते हैं।
हर बार मॉनिटर संदेश को पहुँचते दिखाता है और कंसोल सिग्नल का नाम बताता है। सिग्नल ठीक वही भेजता है जो उसकी स्क्रीन भेजती। और जानकारी सिग्नल में।
OSC का काम पूरा होने पर मॉनिटर पर रोकें दबाएँ।
एमुलेट किए गए API से पूछें
Signal Lab के साथ पाँच एमुलेटर आते हैं, सभी 127.0.0.1 पर। उनमें से एक, डेमो API, 127.0.0.1:8080 पर एक HTTP API है, जिसके ये रूट हैं:
| रिक्वेस्ट | जवाब |
|---|---|
GET /health | 200 और {"status":"ok","time":"…"} — वर्तमान समय |
GET /users/:id | 200 और उस id वाला उपयोगकर्ता, जैसे {"id":"42","name":"User 42"} |
POST /users | 201, Location हेडर और नई id के साथ |
GET /slow | 1.5 सेकंड बाद 200 |
कोई भी मेथड, /flaky | 503, 503, फिर तीसरी रिक्वेस्ट से 200 |
| बाकी कुछ भी | 404 |
- एमुलेटर खोलें। लाइब्रेरी में पाँचों की सूची है; डेमो API चुनें।
- शुरू करें दबाएँ। अब यह
127.0.0.1:8080पर जवाब देता है और एक जॉब के रूप में चलता है। - HTTP खोलें। मेथड
GETहै; URL कोhttp://127.0.0.1:8080/healthपर सेट करें। - भेजें दबाएँ, या URL में Enter दबाएँ।
रिस्पॉन्स के नीचे आपको स्टेटस 200, लेटेंसी, आकार, रिस्पॉन्स हेडर और JSON बॉडी दिखती है। http://127.0.0.1:8080/flaky तीन बार भेजें: दो बार 503 जवाब, फिर 200 — दोबारा प्रयास करने वाले क्लाइंट को ठीक होती सेवा ऐसी ही दिखती है।
एमुलेटर पर लौटें: लाइव पैनल हर रिक्वेस्ट गिनता है, और प्राप्त हर रिक्वेस्ट को, उसका जवाब देने वाले नियम और जवाब के साथ, दिखाता है। अगले हिस्से के लिए डेमो API को चलता रहने दें। और जानकारी एमुलेटर में।
प्रयोग चलाएँ
प्रयोग चरणों का एक फ़्लो है जिसे आप बार-बार चला सकते हैं। Signal Lab पहली बार जिस प्रयोग के साथ खुलता है — HTTP जाँच टेम्पलेट — वह http://127.0.0.1:8080/ पर रिक्वेस्ट भेजता है और जाँचता है कि जवाब 200 है।
टेम्पलेट खोलें
- प्रयोग खोलें।
- अगर कैनवास पर चार नोड — शुरुआत, HTTP रिक्वेस्ट, HTTP स्टेटस, अंत — नहीं दिखते, तो टूलबार के बाएँ सिरे पर ☰ (प्रयोग) दबाएँ, टेम्पलेट की सूची में HTTP जाँच चुनें, और प्रयोग खोलें दबाएँ। खोलने से कैनवास का प्रयोग बदल जाता है; Ctrl+Z पिछला वापस ले आता है।
किसी नोड की सेटिंग्स दाईं ओर गुण में देखने के लिए उस पर क्लिक करें। बदलाव करते ही प्रयोग अपने आप सहेजे जाते हैं।
इसे चलाएँ और पढ़ें कि यह क्यों विफल होता है
- प्रयोग चलाएँ दबाएँ।
कैनवास के नीचे रन टाइमलाइन खुलती है, जिसमें हर चरण की एक पंक्ति उसके शुरू होने पर (चल रहा है) और फिर उसके समाप्त होने पर आती है: समय, नोड, और नतीजा। यह रन विफल होता है:
- शुरुआत सफल होता है और रन का सीड बताता है।
- HTTP रिक्वेस्ट सफल होता है: रिक्वेस्ट गई और जवाब आया,
HTTP 404। - HTTP स्टेटस विफल होता है: उसे
200अपेक्षित था और404मिला।
डेमो API में / के लिए कोई रूट नहीं है, इसलिए उसने 404 जवाब दिया — और जाँच ने इसे पकड़ लिया। टाइमलाइन के ऊपर की पंक्ति में विफल और उसकी वजह लिखी होती है। कैनवास पर किसी पंक्ति का नोड चुनने के लिए उस पंक्ति पर क्लिक करें।
रिक्वेस्ट ही विफल हो गई?
अगर HTTP रिक्वेस्ट चरण अस्वीकार किए गए कनेक्शन के साथ विफल होता है, तो 127.0.0.1:8080 पर कुछ भी नहीं सुन रहा: एमुलेटर पर डेमो API शुरू करें और फिर चलाएँ।
रिक्वेस्ट ठीक करें
- HTTP रिक्वेस्ट नोड पर क्लिक करें।
- गुण में URL को
http://127.0.0.1:8080/healthमें बदलें। - प्रयोग चलाएँ दबाएँ।
इस बार हर चरण सफल होता है: HTTP स्टेटस पर शर्त पूरी हुई, अंत पर पूर्ण और टाइमलाइन के शीर्षक में सफल लिखा होता है।
एक जाँच जोड़ें
200 स्टेटस बताता है कि सेवा ने जवाब दिया; यह नहीं बताता कि क्या जवाब दिया। बॉडी भी जाँचें:
- HTTP स्टेटस नोड पर क्लिक करें।
- गुण में अगला जोड़ें दबाएँ — या कैनवास पर फ़ोकस रहते A दबाएँ। खोज फ़ील्ड के साथ नोड का एक मेनू खुलता है।
assert_bodyटाइप करें और Enter दबाएँ। HTTP स्टेटस और अंत के बीच एक रिस्पॉन्स टेक्स्ट नोड जुड़ जाता है, पहले से कनेक्ट किया हुआ, और उसका शामिल टेक्स्ट फ़ील्ड टाइप करने के लिए तैयार रहता है।"status":"ok"टाइप करें।- प्रयोग चलाएँ दबाएँ।
नया चरण सफल होता है। टेक्स्ट को ऐसी चीज़ में बदलें जो बॉडी में नहीं है, और फिर चलाकर देखें कि वह वजह के साथ विफल होता है।
रन अपने पीछे क्या छोड़ता है
- एक रिपोर्ट। रन समाप्त होने पर टाइमलाइन के शीर्षक में रिपोर्ट सहेजी गई दिखता है; फ़ाइल देखने के लिए उस पर पॉइंटर रखें। जो भी रन समाप्त होता है, सफल हो या विफल, वह आपके डेटा फ़ोल्डर के
runsफ़ोल्डर में एक रिपोर्ट लिखता है, जिसमें उसके उपयोग किए गए मान और हर चरण होता है। ब्राउज़र में यह एक डाउनलोड लिंक होता है। - एक सीड। शीर्षक में पिन करें के साथ रन का सीड भी दिखता है: रन के रैंडम मान उसके सीड से तय होते हैं, और उसे पिन करने से वही मान ठीक-ठीक दोहराए जाते हैं।
और जानकारी रन और रिपोर्ट में।
समेटें
हेडर में सभी रोकें दबाएँ: यह डेमो API को और जो कुछ भी अभी चल रहा है, उसे रोक देता है। आपका सिग्नल, प्रयोग और उसकी रिपोर्ट आपके डेटा फ़ोल्डर में बने रहते हैं।