UNPKG

@remote.it/core

Version:

Core remote.it JavasScript/TypeScript library

66 lines 2.61 kB
"use strict"; 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