BrowserविशेषताएँReal-time Signaling (MFA)

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

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

अवलोकन

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

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

MFA हैंडलिंग ऑटोमेशन के लिए क्यों महत्वपूर्ण है:

निर्बाध पहुंच सुनिश्चित करें: वर्कफ़्लो में रुकावट के बिना अप्रत्याशित SMS कोड, ईमेल OTP, या TOTP प्रमाणीकरण को संभालें

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

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

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

MFA से परे: यूनिवर्सल इवेंट सिस्टम

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

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

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

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

समर्थित API

स्क्रैपलेस रियल-टाइम सिग्नलिंग के लिए 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 API

Signal.send

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

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

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

पैरामीटर:

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

उदाहरण:

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

Signal.wait

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

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

{
  "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);

Signal.list

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

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

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');
}

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

Signal.stats

कतार के आंकड़े और सब्सक्राइबर जानकारी प्राप्त करता है।

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

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);

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

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

Signal.clear

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

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

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

पैरामीटर:

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

HTTP REST API

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

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

POST /signal/send

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

अनुरोध बॉडी:

{
  "event": "string",
  "data": "object"
}

पैरामीटर:

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

GET /signal/wait

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

अनुरोध URL:

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

क्वेरी पैरामीटर:

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

GET /signal/list

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

अनुरोध URL:

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

GET /signal/stats

कतार के आंकड़े प्राप्त करता है।

अनुरोध URL:

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

DELETE /signal/clear

कतार से इवेंट साफ़ करता है।

अनुरोध बॉडी:

{
  "event": "string (optional)"
}

पैरामीटर:

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

सर्वोत्तम अभ्यास

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

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

त्रुटि हैंडलिंग

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

कतार निगरानी

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

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

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

अतुल्यकालिक प्रसंस्करण

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

कतार सफाई

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

एकीकरण टिप

सिग्नल सिस्टम को 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 ID 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 via WebSocket
        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);
    }
})();

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

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