कनेक्शन शुरू करना
आस-पास मौजूद डिवाइसों का पता चलने पर, खोज करने वाला डिवाइस कनेक्शन शुरू कर सकता है. यहां दिए गए उदाहरण में, डिवाइस का पता चलते ही उससे कनेक्शन का अनुरोध किया गया है.
Swift
extension Example: DiscovererDelegate {
func discoverer(
_ discoverer: Discoverer, didFind endpointID: EndpointID, with context: Data) {
// An endpoint was found. We request a connection to it. The endpoint info can be used
// to provide arbitrary information to the discovering device (e.g. device name or type).
discoverer.requestConnection(to: endpointID, using: "My Device".data(using: .utf8)!)
}
func discoverer(_ discoverer: Discoverer, didLose endpointID: EndpointID) {
// A previously discovered endpoint has gone away.
}
}
अपने इस्तेमाल के उदाहरण के आधार पर, हो सकता है कि आप उपयोगकर्ता को खोजे गए डिवाइसों की सूची दिखाना चाहें. इससे वे चुन सकते हैं कि उन्हें किन डिवाइसों से कनेक्ट करना है.
कनेक्शन का अनुरोध स्वीकार या अस्वीकार करना
जब डिस्कवरर, विज्ञापन देने वाले व्यक्ति या कंपनी से कनेक्शन का अनुरोध करता है, तो विज्ञापन देने वाले व्यक्ति या कंपनी को कनेक्शन के अनुरोध की सूचना, advertiser(_:didReceiveConnectionRequestFrom:with:connectionRequestHandler:) डेलिगेट तरीके से दी जाती है.
Swift
extension Example: AdvertiserDelegate {
func advertiser(
_ advertiser: Advertiser, didReceiveConnectionRequestFrom endpointID: EndpointID,
with context: Data, connectionRequestHandler: @escaping (Bool) -> Void) {
// Call with `true` to accept or `false` to reject the incoming connection request.
connectionRequestHandler(true)
}
}
विज्ञापन देने वाले व्यक्ति या कंपनी की ओर से अनुरोध स्वीकार किए जाने के बाद, दोनों पक्षों को इसकी सूचना दी जाती है. साथ ही, उन्हें connectionManager(_:didReceive:from:verificationHandler:)
डेलिगेट तरीके से कनेक्शन की पुष्टि करनी होगी.
हमारा सुझाव है कि आपका ऐप्लिकेशन, डेलिगेट तरीके से मिले पुष्टि करने के लिए कोड का इस्तेमाल करके, कनेक्शन की पुष्टि करे. इससे उपयोगकर्ताओं को यह पुष्टि करने का तरीका मिलता है कि वे सही डिवाइस से कनेक्ट कर रहे हैं. दोनों डिवाइसों को एक ही कोड दिया जाता है. यह कोड, रैंडम स्ट्रिंग होती है. यह आप पर निर्भर करता है कि आपको इसकी पुष्टि कैसे करनी है. आम तौर पर, इसमें दोनों डिवाइसों पर टोकन दिखाया जाता है. साथ ही, उपयोगकर्ताओं से मैन्युअल तरीके से तुलना करने और पुष्टि करने के लिए कहा जाता है. यह ब्लूटूथ पेयरिंग डायलॉग की तरह होता है.
Swift
extension Example: ConnectionManagerDelegate {
func connectionManager(
_ connectionManager: ConnectionManager, didReceive verificationCode: String,
from endpointID: EndpointID, verificationHandler: @escaping (Bool) -> Void) {
// Optionally show the user the verification code. Your app should call this handler
// with a value of `true` if the nearby endpoint should be trusted, or `false`
// otherwise.
verificationHandler(true)
}
}
कनेक्शन पूरी तरह से तब ही बनता है, जब दोनों पक्ष इसे स्वीकार कर लेते हैं. अगर दोनों में से कोई एक या दोनों ही इस न्योते को अस्वीकार कर देते हैं, तो खाते लिंक नहीं किए जाएंगे.
ऊपर दिए गए उदाहरण में, कनेक्शन को दोनों तरफ़ से अपने-आप स्वीकार किया जा रहा है. हालांकि, आपके इस्तेमाल के उदाहरण के आधार पर, हो सकता है कि आप इस विकल्प को उपयोगकर्ता को किसी तरह से दिखाना चाहें.