如何将从UDP接收的数据传输到node.js中的网页

时间:2015-04-29 15:42:50

标签: javascript node.js udp

我正在运行here中的两个应用。所以我们有一个客户:

var PORT = 5007 ;
  var dgram = require('dgram');
  var client = dgram.createSocket('udp4');

  client.on('listening', function () {
      var address = client.address();
      console.log('UDP Client listening on ' + address.address + ":" + address.port);
      client.setBroadcast(true)
      client.setMulticastTTL(128); 
      client.addMembership('224.1.1.1');
  });

  client.on('message', function (message, remote) {   
      console.log('A: Epic Command Received. Preparing Relay.');
      console.log('B: From: ' + remote.address + ':' + remote.port +' - ' + message);
  });

  client.bind(PORT);

和服务器:

var PORT = 5007 ;
  var dgram = require('dgram');
  var client = dgram.createSocket('udp4');

  client.on('listening', function () {
      var address = client.address();
      console.log('UDP Client listening on ' + address.address + ":" + address.port);
      client.setBroadcast(true)
      client.setMulticastTTL(128); 
      client.addMembership('224.1.1.1');
  });

  client.on('message', function (message, remote) {   
      console.log('A: Epic Command Received. Preparing Relay.');
      console.log('B: From: ' + remote.address + ':' + remote.port +' - ' + message);
  });

  client.bind(PORT);

它工作得很好,当我在两个独立控制台中运行它时 - 我看到传输正在进行,并且消息出现在两个站点上。现在,如何将所有这些数据显示/传输到任何网页? 谢谢!

1 个答案:

答案 0 :(得分:1)

如果您希望它是实时的或根据请求提供,它取决于它与类型的数据组合。

如果您希望根据请求提供服务,则必须将数据存储在某个位置,以便稍后访问。在文件系统上或类似MongoDB's GridFS之类的东西,或直接在数据库中(正如我所说,取决于它是什么类型的数据)

如果您希望将其实时流式传输到已连接的网络客户端,则必须使用Socket.ioWebRTC之类的内容。两者之间的差异很大。 Socket.io很容易使用,但需要一个中间人服务器,而WebRTC(Web实时通信)在浏览器中是直接对等的,并且更难以使用。 WebRTC是相当新的,在旧的浏览器版本中不可用,所以我建议在这种情况下使用Socket.io或类似的。

希望您能更好地了解您的可能性。无论哪种方式,您都需要捕获两个客户端之间的数据(如客户端 - 服务器示例中所示)