@remote.it/core
Version:
Core remote.it JavasScript/TypeScript library
66 lines • 2.61 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var debug_1 = __importDefault(require("debug"));
var dgram_1 = __importDefault(require("dgram"));
var events_1 = require("events");
var d = debug_1.default('remoteit:UDPListener');
var UDPListener = /** @class */ (function (_super) {
__extends(UDPListener, _super);
function UDPListener(port) {
var _this = _super.call(this) || this;
_this.port = port;
_this.handleError = function (err) {
_this.emit('error', err);
d("server error:\n" + err.stack);
_this.close();
};
_this.handleMessage = function (msg, rinfo) {
d("server got: " + msg + " from " + rinfo.address + ":" + rinfo.port);
_this.emit('message', msg.toString('utf8'));
};
_this.handleListening = function () {
if (!_this.address || typeof _this.address === 'string')
return;
d("server listening " + _this.address.address + ":" + _this.address.port);
};
_this.server = dgram_1.default.createSocket('udp4');
_this.server.on('error', _this.handleError);
_this.server.on('message', _this.handleMessage);
_this.server.on('listening', _this.handleListening);
return _this;
}
UDPListener.prototype.listen = function () {
this.server.bind(this.port);
this.emit('ready');
};
UDPListener.prototype.close = function () {
this.server.close();
this.emit('closed');
};
Object.defineProperty(UDPListener.prototype, "address", {
get: function () {
return this.server.address();
},
enumerable: true,
configurable: true
});
return UDPListener;
}(events_1.EventEmitter));
exports.UDPListener = UDPListener;
//# sourceMappingURL=UDPListener.js.map