-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.js
57 lines (51 loc) · 1.54 KB
/
client.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// const dgram = require("dgram");
// const client = dgram.createSocket("udp4");
// let messageQueue = [];
// let currentSequenceNumber = 0;
// function sendMessage(message, address, port) {
// const messageWithSeq = JSON.stringify({
// seq: currentSequenceNumber,
// ...message,
// });
// client.send(
// messageWithSeq,
// 0,
// messageWithSeq.length,
// port,
// address,
// (err) => {
// if (err) {
// console.error(err);
// } else {
// console.log(`Message sent: ${messageWithSeq}`);
// messageQueue.push({
// seq: currentSequenceNumber,
// message: messageWithSeq,
// });
// currentSequenceNumber++;
// }
// }
// );
// }
// // Logic to handle ACKs and resend missing messages
// client.on("message", (msg) => {
// const ack = JSON.parse(msg.toString());
// console.log(`ACK received for: ${ack.seq}`);
// messageQueue = messageQueue.filter((m) => m.seq !== ack.seq);
// });
// // Example usage
// sendMessage({ data: "Hello, World" }, "234.1.1.1", 4321);
const dgram = require('dgram');
const client = dgram.createSocket({ type: 'udp4', reuseAddr: true });
const message = Buffer.from('{ "hello": "world" }');
const multicastAddress = '234.1.1.1';
const port = 4321;
client.bind(function() {
client.setBroadcast(true);
client.setMulticastTTL(128);
client.send(message, 0, message.length, port, multicastAddress, function(err) {
if (err) console.error(err);
console.log('Multicast message sent');
client.close();
});
});