简体   繁体   中英

How can i send data from a UDP server to a browser?

I try to make an application that receives from a third part application UDP packets.

I try to create a server UDP in NodeJS, but now when I receive the data I don't know how can I show it in a browser windows.

I explain better...my application receives data via udp in real time, the server processes them and should show them real time on a web page.

This is my code for UDP server in NodeJS:

const dgram = require('dgram');
const server = dgram.createSocket('udp4');

server.on('error', (err) => {
console.log(`server error:\n${err.stack}`);
server.close();
});

server.on('message', (msg, rinfo) => {
console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
console.log(` messaggio ricevuto ${msg}`);

});

server.on('listening', () => {
const address = server.address();
console.log(`server listening ${address.address}:${address.port}`);

});

server.bind({
adress:'127.0.0.1',
port:'41234'
});


// server listening address :41234

Thanks a lot for the reply

welcome to SO!

You could do something like below...

// Open a connection
var socket = new WebSocket('ws://localhost:41234/');

// When a connection is made
socket.onopen = function() {
  console.log('Opened connection 🎉');

  // send data to the server
  var json = JSON.stringify({ message: 'Hello 👋' });
  socket.send(json);
}

// When data is received
socket.onmessage = function(event) {
  console.log(event.data);
}

// A connection could not be made
socket.onerror = function(event) {
  console.log(event);
}

// A connection was closed
socket.onclose = function(code, reason) {
  console.log(code, reason);
}

// Close the connection when the window is closed
window.addEventListener('beforeunload', function() {
  socket.close();
});

This link should give you more info : https://www.sitepoint.com/real-time-apps-websockets-server-sent-events/ (above snippet is taken from this link)

You need a web server to send data to browser.

This link https://socket.io/get-started/chat will help you create a webserver.

You could send the message received on UDP port to the websocket as below

server.on('message', (msg, rinfo) => {
  socket.emit('sendData', msg);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM