সংযোগগুলি পরিচালনা করুন

একটি সংযোগ শুরু করুন

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

সুইফট

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:) প্রতিনিধি পদ্ধতির মাধ্যমে সংযোগের অনুরোধ সম্পর্কে অবহিত করা হয়।

সুইফট

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:) প্রতিনিধি পদ্ধতির মাধ্যমে সংযোগ যাচাই করতে হবে।

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

সুইফট

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

সংযোগটি তখনই সম্পূর্ণরূপে প্রতিষ্ঠিত হয় যখন উভয় পক্ষই স্বীকার করে। যদি এক বা উভয় প্রত্যাখ্যান, সংযোগ বাতিল করা হয়.

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