कनेक्शन शुरू करना
आस-पास मौजूद डिवाइसों का पता चलने पर, उन्हें खोजने वाला व्यक्ति कनेक्शन शुरू कर सकता है. नीचे दिए गए उदाहरण में, किसी डिवाइस का पता चलते ही उससे कनेक्ट करने का अनुरोध किया गया है.
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)
}
}
कनेक्शन तब ही पूरी तरह से बन पाता है, जब दोनों पक्ष इसे स्वीकार कर लेते हैं. अगर माता-पिता या किशोर में से कोई भी, खाता लिंक करने का न्योता अस्वीकार करता है, तो खाता लिंक नहीं किया जा सकेगा.
ऊपर दिए गए उदाहरणों में, दोनों पक्षों के बीच कनेक्शन अपने-आप स्वीकार होने की जानकारी दी गई है. हालांकि, इस्तेमाल के उदाहरण के आधार पर, आपको यह विकल्प उपयोगकर्ता को किसी तरह से दिखाना पड़ सकता है.