nativescript-dna-netservices
Version:
NativeScript plugin for Bonjour/ZeroConf and network monitoring. RxJS based APIs for Android and iOS.
114 lines • 5.11 kB
JavaScript
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