UNPKG

nativescript-dna-netservices

Version:

NativeScript plugin for Bonjour/ZeroConf and network monitoring. RxJS based APIs for Android and iOS.

114 lines 5.11 kB
import { Observable } from "rxjs"; import { ZeroConf, zeroConfStatus } from "./netservice.common"; export class ZeroConfServiceBrowser { searchForBrowsableDomains() { return new Observable((observer) => { let netServiceBrowser = NSNetServiceBrowser.alloc().init(); netServiceBrowser.delegate = ZeroConfServiceBrowserDelegate.new().initWithObserver(observer); netServiceBrowser.searchForBrowsableDomains(); return () => { netServiceBrowser.stop(); netServiceBrowser.delegate = null; netServiceBrowser = null; }; }); } searchForRegistrationDomains() { return new Observable((observer) => { let netServiceBrowser = NSNetServiceBrowser.alloc().init(); netServiceBrowser.delegate = ZeroConfServiceBrowserDelegate.new().initWithObserver(observer); netServiceBrowser.searchForRegistrationDomains(); return () => { netServiceBrowser.stop(); netServiceBrowser.delegate = null; netServiceBrowser = null; }; }); } searchForServicesOfTypeInDomain(type, domain) { const obserable = new Observable((observer) => { let netServiceBrowser = NSNetServiceBrowser.alloc().init(); netServiceBrowser.delegate = ZeroConfServiceBrowserDelegate.new().initWithObserver(observer); netServiceBrowser.searchForServicesOfTypeInDomain(type, domain); return () => { netServiceBrowser.stop(); netServiceBrowser.delegate = null; netServiceBrowser = null; }; }); return obserable; } } var ZeroConfServiceBrowserDelegate = /** @class */ (function (_super) { __extends(ZeroConfServiceBrowserDelegate, _super); function ZeroConfServiceBrowserDelegate() { return _super !== null && _super.apply(this, arguments) || this; } ZeroConfServiceBrowserDelegate.new = function () { return _super.new.call(this); }; ZeroConfServiceBrowserDelegate.prototype.initWithObserver = function (observer) { this._observer = observer; return this; }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidFindDomainMoreComing = function (browser, domain, moreComing) { var status = zeroConfStatus.add; status |= moreComing ? zeroConfStatus.moreComing : zeroConfStatus.stopComing; this._observer.next(new ZeroConf({ status: status, domain: domain })); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidFindServiceMoreComing = function (browser, service, moreComing) { var status = zeroConfStatus.add; status |= moreComing ? zeroConfStatus.moreComing : zeroConfStatus.stopComing; this._observer.next(new ZeroConf({ status: status, name: service.name, type: service.type, domain: service.domain, hostName: service.hostName, port: service.port })); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidNotSearch = function (browser, errorDict) { var errCode = Number(errorDict.objectForKey("errorCode")); var status = zeroConfStatus.failed; var zc = new ZeroConf({ status: status }); this._observer.error({ errorCode: errCode, zeroConf: zc }); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidRemoveDomainMoreComing = function (browser, domain, moreComing) { var status = zeroConfStatus.remove; status |= moreComing ? zeroConfStatus.moreComing : zeroConfStatus.stopComing; this._observer.next(new ZeroConf({ status: status, domain: domain })); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidRemoveServiceMoreComing = function (browser, service, moreComing) { var status = zeroConfStatus.remove; status |= moreComing ? zeroConfStatus.moreComing : zeroConfStatus.stopComing; this._observer.next(new ZeroConf({ status: status, name: service.name, type: service.type, domain: service.domain, hostName: service.hostName, port: service.port })); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserDidStopSearch = function (browser) { var status = zeroConfStatus.serviceEnds; this._observer.next(new ZeroConf({ status: status })); }; ZeroConfServiceBrowserDelegate.prototype.netServiceBrowserWillSearch = function (browser) { var status = zeroConfStatus.serviceBegins; this._observer.next(new ZeroConf({ status: status })); }; // Note: This ObjCProtocols is needed. ZeroConfServiceBrowserDelegate.ObjCProtocols = [NSNetServiceBrowserDelegate]; return ZeroConfServiceBrowserDelegate; }(NSObject)); //# sourceMappingURL=zeroconf-service-browser.ios.js.map