কানেকশন ম্যানেজ করুন

কানেকশন শুরু করুন

আশেপাশের ডিভাইস খুঁজে পাওয়া গেলে, যে ডিভাইস খুঁজছে সেটি কানেকশন শুরু করতে পারে। নিম্নলিখিত উদাহরণে, ডিভাইস খুঁজে পাওয়ার সাথে সাথেই কানেকশনের অনুরোধ করা হয়েছে।

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

দুই পক্ষই সম্মতি দিলে তবেই কানেকশন সম্পূর্ণভাবে প্রতিষ্ঠিত হয়। একজন বা দুজনেই বাতিল করলে, কানেকশন বাতিল করা হয়।

আগের উদাহরণে দেখানো হয়েছে যে দুই পক্ষই অটোমেটিক কানেকশন গ্রহণ করছে, তবে আপনার ব্যবহারের কেসের উপর নির্ভর করে আপনি এই পছন্দটি ব্যবহারকারীর কাছে কোনওভাবে উপস্থাপন করতে চাইতে পারেন।