Skip to content

Instantly share code, notes, and snippets.

@standinga
Created November 30, 2020 08:57
Show Gist options
  • Save standinga/1b751c52ede78a5b4b58d191bd2ad7be to your computer and use it in GitHub Desktop.
Save standinga/1b751c52ede78a5b4b58d191bd2ad7be to your computer and use it in GitHub Desktop.
IOS/OSX Networking updated browser
//
// Client.swift
// MultiConnect
//
// Created by michal on 29/11/2020.
//
import Foundation
import Network
class Browser {
let browser: NWBrowser
init() {
let parameters = NWParameters()
parameters.includePeerToPeer = true
browser = NWBrowser(for: .bonjour(type: "_superapp._tcp", domain: nil), using: parameters)
}
func start(handler: @escaping (NWBrowser.Result) -> Void) {
browser.stateUpdateHandler = { newState in
log("browser.stateUpdateHandler \(newState)")
}
browser.browseResultsChangedHandler = { results, changes in
for result in results {
if case NWEndpoint.service = result.endpoint {
handler(result)
}
}
}
browser.start(queue: .main)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment