UNPKG

1.01 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Sender = void 0;
4const dgram_1 = require("dgram");
5const util_1 = require("./util");
6const packet_1 = require("./packet");
7class Sender {
8 constructor({ universe, port = 5568, reuseAddr = false }) {
9 this.sequence = 0;
10 this.port = port;
11 this.universe = universe;
12 this.multicastDest = util_1.multicastGroup(universe);
13 this.socket = dgram_1.createSocket({ type: 'udp4', reuseAddr });
14 }
15 send(packet) {
16 return new Promise((resolve, reject) => {
17 const { buffer } = new packet_1.Packet(Object.assign(Object.assign({}, packet), { universe: this.universe, sequence: this.sequence }));
18 this.sequence = (this.sequence + 1) % 256;
19 this.socket.send(buffer, this.port, this.multicastDest, (err) => err ? reject(err) : resolve());
20 });
21 }
22 close() {
23 this.socket.close();
24 return this;
25 }
26}
27exports.Sender = Sender;