दस्तावेज़ब्राउज़र और CrawlAgent Browserरीयल-टाइम सिग्नलिंग (MFA)

रीयल-टाइम सिग्नलिंग

रीयल-टाइम सिग्नलिंग स्वचालित कार्यप्रवाह में असमानुपातिक संचार को संभालने के लिए एक उन्नत घटना-संचालित प्रणाली है। यह सिग्नल-आधारित वास्तुकला स्वचालन स्क्रिप्ट और बाह्य प्रणालियों के बीच सहज बातचीत को सक्षम करता है, जिसमें मल्टी-फैक्टर ऑथेंटिकेशन (MFA) हैंडलिंग इसके सबसे महत्वपूर्ण अनुप्रयोगों में से एक है।

अवलोकन

रीयल-टाइम सिग्नलिंग प्रणाली स्वचालन कार्यप्रवाह में असमानुपातिक घटनाओं को प्रबंधित करने के लिए एक मजबूत ढांचा प्रदान करती है। जबकि MFA सत्यापन एक प्राथमिक उपयोग का मामला प्रस्तुत करता है, प्रणाली की लचीली वास्तुकला विविध घटना-संचालित परिदृश्यों का समर्थन करती है।

मल्टी-फैक्टर ऑथेंटिकेशन (MFA) एक महत्वपूर्ण सुरक्षा सुविधा है जो अक्सर स्वचालित कार्यप्रवाह के लिए एक बोतल का सिर बन जाती है, जिससे विफलताएं या खाता लॉकआउट हो सकते हैं।

स्वचालन के लिए MFA हैंडलिंग क्यों महत्वपूर्ण है:

✅ निर्बाध पहुंच सुनिश्चित करें: कार्यप्रवाह में बाधा के बिना अप्रत्याशित एसएमएस कोड, ईमेल ओटीपी या टीओटीपी प्रमाणीकरण को संभालें

✅ वर्कफ़्लो क्रैश को रोकें: पारंपरिक स्वचालन में MFA प्रॉम्प्ट दिखाई देने पर ठंडा हो जाता है, जबकि Agent Browser इन्हें सुचारू रूप से संभालता है

✅ स्थिर सत्र बनाए रखें: लंबे समय तक चलने वाले कार्य सुरक्षित सत्यापन स्थिति प्रबंधन के साथ लॉग इन रहते हैं

✅ खाता जोखिम कम करें: मानव-जैसा सत्यापन व्यवहार सुरक्षा ट्रिगर की संभावना को कम करता है

MFA के अलावा: सार्वभौमिक घटना प्रणाली

सिग्नलिंग प्रणाली प्रमाणीकरण से परे विस्तारित होती है और निम्नलिखित को संभालती है:

  • फॉर्म सबमिशन और स्थिति अद्यतन
  • टास्क प्रगति सूचनाएं
  • API कॉलबैक और वेबहुक
  • उपयोगकर्ता बातचीत और स्थिति परिवर्तन
  • प्रणालियों के माध्यम से प्रक्रिया समन्वय
  • वास्तविक समय निगरानी और अलर्ट

पूर्ण सिग्नलिंग समाधान:

  • विश्वसनीय MFA सत्यापन (प्राथमिक उपयोग केस)
  • स्वचालन आवश्यकताओं के लिए सार्वभौमिक घटना प्रसंस्करण
  • कोड और डेटा के लिए एकाधिक इनपुट विधियाँ
  • अतुल्यकालिक प्रसंस्करण (गैर-अवरोधक)
  • पूर्ण CDP और HTTP API समर्थन
  • प्रमाणीकरण प्रवाहों के साथ सार्वभौमिक संगतता

समर्थित APIs

Scrapeless वास्तविक समय सिग्नलिंग के लिए CDP और HTTP इंटरफ़ेस दोनों का समर्थन करता है:

APICDP विधिHTTP एंडपॉइंटविवरण
सिग्नल भेजेंSignal.sendPOST /signal/sendएक घटना चैनल पर डेटा भेजें
सिग्नल के लिए प्रतीक्षा करेंSignal.waitGET /signal/waitएक घटना चैनल पर डेटा के लिए प्रतीक्षा करें
घटनाओं की सूची बनाएँSignal.listGET /signal/listसभी लंबित घटना नामों की सूची बनाएँ
आँकड़े प्राप्त करेंSignal.statsGET /signal/statsकतार आँकड़े पुनर्प्राप्त करें
घटनाओं को साफ़ करेंSignal.clearDELETE /signal/clearविशिष्ट या सभी घटनाओं को साफ़ करें

CDP APIs

CDP सिग्नल API आपको ब्राउज़र स्वचालन वर्कफ़्लो में घटना चैनलों के माध्यम से सिग्नल भेजने और प्राप्त करने की अनुमति देते हैं। अधिक जानें

सिग्नल.भेजें

निर्दिष्ट घटना चैनल पर सिग्नल डेटा भेजता है।

अनुरोध प्रारूप:

{
  "method": "Signal.send",
  "params": {
    "event": "string",
    "data": "object"
  }
}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstring✓घटना चैनल का नाम
dataobject✓चैनल के माध्यम से भेजा जाने वाला डेटा

उदाहरण:

await client.send('Signal.send', {
  event: 'mfa_code',
  data: { code: '123456', type: 'sms' }
});

सिग्नल।वेट

निर्दिष्ट इवेंट चैनल पर सिग्नल डेटा की प्रतीक्षा करता है।

अनुरोध प्रारूप:

{
  "method": "Signal.wait",
  "params": {
    "event": "string",
    "timeout": 60000
  }
}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstring✓उस इवेंट चैनल का नाम जिसके लिए प्रतीक्षा करनी है
timeoutnumberXमिलीसेकंड में अधिकतम प्रतीक्षा समय (डिफ़ॉल्ट: 60000)

उदाहरण:

const result = await client.send('Signal.wait', {
  event: 'mfa_code',
  timeout: 60000
});
console.log('Received MFA code:', result.data);

सिग्नल.सूची

कतार में सभी लंबित इवेंट नामों को सूचीबद्ध करता है।

अनुरोध प्रारूप:

{
  "method": "Signal.list",
  "params": {}
}

पैरामीटर: कोई आवश्यक नहीं

उदाहरण:

const list = await client.send('Signal.list');
console.log('Pending events:', list.events);
// Output: ["mfa_code", "captcha_result", "order_status"]
 
// Check for specific event
if (list.events.includes('mfa_code')) {
  console.log('MFA code in queue');
}

सिग्नल.आँकड़े

कतार सांख्यिकी और सदस्यता जानकारी पुनर्प्राप्त करता है।

अनुरोध प्रारूप:

{
  "method": "Signal.stats",
  "params": {}
}

पैरामीटर: कोई आवश्यक नहीं

प्रतिक्रिया फ़ील्ड:

फ़ील्डप्रकारविवरण
eventsnumberसभी लंबित इवेंट नामों की सूची
waitersnumberप्रतीक्षारत सदस्यों के बारे में जानकारी

उदाहरण:

const client = await page.target().createCDPSession();
 
// Get statistics
const stats = await client.send('Signal.stats');
console.log('Pending events:', stats.events);
console.log('Waiting subscribers:', stats.waiters);

सिग्नल.साफ़ करें

कतार से निर्दिष्ट या सभी इवेंट्स को साफ़ करता है।

अनुरोध प्रारूप:

{
  "method": "Signal.clear",
  "params": {
    "event": "string (optional)"
  }
}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstringXसाफ़ करने के लिए विशिष्ट इवेंट। यदि छोड़ दिया जाता है, तो सभी इवेंट्स साफ़ कर दिए जाते हैं

HTTP REST APIs

बाह्य सिस्टम के लिए, HTTP REST एंडपॉइंट CDP कनेक्शन सेटअप के लिए एक सरल विकल्प प्रदान करते हैं। इससे हर डेटा संचरण के लिए WebSocket कनेक्शन स्थापित करने की आवश्यकता समाप्त हो जाती है। अधिक जानें

डिफ़ॉल्ट ब्राउज़र एंडपॉइंट उपसर्ग: https://browser.scrapeless.com/browser/{taskId}

POST /सिग्नल/भेजें

HTTP के माध्यम से एक सिग्नल भेजता है।

अनुरोध प्रारूप:

POST https://browser.scrapeless.com/browser/{taskId}/signal/send?x-api-token={API_KEY}
Content-Type: application/json
 
{
  "event": "string",
  "data": "object"
}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstring✓घटना चैनल का नाम
dataobject✓चैनल के माध्यम से भेजा जाने वाला डेटा

उदाहरण:

curl -X POST 'https://browser.scrapeless.com/browser/{taskId}/signal/send?x-api-token={API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{
    "event": "mfa_code",
    "data": { "code": "123456", "type": "sms" }
  }'

GET /सिग्नल/प्रतीक्षा करें

HTTP GET अनुरोध के माध्यम से सिग्नल की प्रतीक्षा करता है।

अनुरोध प्रारूप:

GET https://browser.scrapeless.com/browser/{taskId}/signal/wait?x-api-token={API_KEY}&event={event}&timeout={timeout}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstring✓उस इवेंट चैनल का नाम जिसके लिए प्रतीक्षा करनी है
timeoutnumberXमिलीसेकंड में अधिकतम प्रतीक्षा समय (डिफ़ॉल्ट: 60000)

उदाहरण:

# Wait for MFA code with 60 second timeout
curl -X GET 'https://browser.scrapeless.com/browser/{taskId}/signal/wait?x-api-token={API_KEY}&event=mfa_code&timeout=60000'

GET /सिग्नल/सूची

सभी लंबित इवेंट नामों को सूचीबद्ध करता है।

अनुरोध प्रारूप:

GET https://browser.scrapeless.com/browser/{taskId}/signal/list?x-api-token={API_KEY}

पैरामीटर: कोई आवश्यक नहीं

उदाहरण:

# List all pending events
curl -X GET 'https://browser.scrapeless.com/browser/{taskId}/signal/list?x-api-token={API_KEY}'

GET /सिग्नल/आँकड़े

कतार सांख्यिकी पुनर्प्राप्त करता है।

अनुरोध प्रारूप:

GET https://browser.scrapeless.com/browser/{taskId}/signal/stats?x-api-token={API_KEY}

पैरामीटर: कोई आवश्यक नहीं

उदाहरण:

# Get queue statistics
curl -X GET 'https://browser.scrapeless.com/browser/{taskId}/signal/stats?x-api-token={API_KEY}'

DELETE /सिग्नल/साफ़ करें

कतार से घटनाओं को साफ़ करता है।

अनुरोध प्रारूप:

DELETE https://browser.scrapeless.com/browser/{taskId}/signal/clear?x-api-token={API_KEY}
Content-Type: application/json
 
{
  "event": "string (optional)"
}

पैरामीटर:

पैरामीटरप्रकारआवश्यकविवरण
eventstringXसाफ़ करने के लिए विशिष्ट इवेंट। यदि छोड़ दिया जाता है, तो सभी इवेंट्स साफ़ कर दिए जाते हैं

उदाहरण:

# Clear specific event
curl -X DELETE 'https://browser.scrapeless.com/browser/{taskId}/signal/clear?x-api-token={API_KEY}' \
  -H 'Content-Type: application/json' \
  -d '{"event": "mfa_code"}'
 
# Clear all events
curl -X DELETE 'https://browser.scrapeless.com/browser/{taskId}/signal/clear?x-api-token={API_KEY}'

सर्वोत्तम प्रथाएँ

उपयुक्त टाइमआउट का उपयोग करें

अपेक्षित सत्यापन देरी के आधार पर टाइमआउट मान निर्धारित करें। आम तौर पर MFA डिलीवरी का समय 10-60 सेकंड के बीच होता है।

त्रुटि संभाल

सफलता, टाइमआउट और त्रुटि स्थितियों को उचित ढंग से संभालने के लिए हमेशा प्रतिक्रिया स्थिति कोड (200, 408, 400) की जाँच करें।

कतार निगरानी

सिस्टम समस्याओं का संकेत दे सकने वाली बैकलॉग स्थितियों का पता लगाने के लिए नियमित रूप से कतार आँकड़ों की जाँच करें।

इवेंट चैनल नामकरण

बहु-इवेंट परिदृश्यों में भ्रम से बचने के लिए वर्णनात्मक इवेंट चैनल नाम (जैसे, mfa_code, email_verification, totp_token) का उपयोग करें।

असमकालिक प्रसंस्करण

उपयोगकर्ता इनपुट की प्रतीक्षा करते समय स्क्रिप्ट अवरोधन को रोकने के लिए असमकालिक सिग्नल हैंडलिंग का लाभ उठाएँ।

कतार सफाई

सिस्टम प्रदर्शन बनाए रखने और मेमोरी समस्याओं को रोकने के लिए कतार से अप्रचलित घटनाओं को साफ़ करें।

Integration Tip

सिग्नल प्रणाली CDP और HTTP इंटरफेस दोनों के साथ बिना किसी रुकावट के काम करने के लिए डिज़ाइन की गई है, जो आपके विशिष्ट उपयोग के मामले के लिए सबसे उपयुक्त विधि चुनने की अनुमति देती है। CDP रीयल-टाइम, कम विलंबता वाला संचार प्रदान करता है, जबकि HTTP REST एंडपॉइंट बाह्य एकीकरण के लिए सरलता प्रदान करते हैं।

पूर्ण उदाहरण

const puppeteer = require('puppeteer-core');
 
(async () => {
    const API_TOKEN = 'API Key';
    const API_URL = 'https://api.scrapeless.com/api/v2/browser'; // Create session task API endpoint
 
    try {
        // Step 1: Get session taskId via HTTP API
        const sessionResponse = await fetch(API_URL, {
            method: 'GET',
            headers: {'x-api-token': API_TOKEN},
        });
 
        const {taskId} = await sessionResponse.json();
        console.log('Session created with task ID:', taskId);
 
        // Step 2: Connect to browser by taskId
        const browser = await puppeteer.connect({
            browserWSEndpoint: `wss://api.scrapeless.com/browser/${taskId}`,
            headers: {'x-api-token': API_TOKEN},
        });
 
        // Step 3: Navigate to page and wait for signal
        const page = await browser.newPage();
        await page.goto("https://example.com", {waitUntil: "domcontentloaded"});
 
        const client = await page.createCDPSession();
 
        console.log('Waiting for example event...');
        const result = await client.send('Signal.wait', {
            event: 'example_event',
            timeout: 60000
        });
 
        console.log('Received example data:', result.data);
 
        await browser.close();
    } catch (error) {
        console.error('Error occurred:', error);
    }
})();

Agent Browser रीयल-टाइम सिग्नलिंग प्रणाली स्वचालित कार्यप्रवाह में मल्टी-फैक्टर प्रमाणीकरण को संभालने के लिए एक मजबूत, लचीली ढांचा प्रदान करती है। CDP और HTTP इंटरफेस को एक बुद्धिमान इवेंट कतार प्रणाली के साथ जोड़कर, यह बाह्य सत्यापन प्रणालियों के सहज एकीकरण को सक्षम करती है जबकि सुरक्षा और विश्वसनीयता बनाए रखती है।

चाहे आप सरल स्वचालन स्क्रिप्ट बना रहे हों या जटिल बहु-प्रणाली समन्वय, सिग्नल प्रणाली की असमकालिक, नॉन-ब्लॉकिंग आर्किटेक्चर आपके वर्कफ़्लो को विश्वसनीय रूप से पूरा करना सुनिश्चित करती है—भले ही MFA सत्यापन की आवश्यकता हो।