【问题标题】:Sending udp message from node js to html将udp消息从节点js发送到html
【发布时间】:2016-11-25 06:12:57
【问题描述】:
var dgram = require(‘dgram’);
var client = dgram.createSocket(‘udp4’);
var PORT= 69;
var HOST= '192.168.0.136'
var message= new Buffer('hello');


set interval(function() {
client.send(message,0,message.length,PORT, HOST, function (err, bytes) {

});
} , 10000);

client.on('message', function(message) {
var temp = message.toString();
console.log(temp);
});

这是我制作的一个非常快速的 udp 示例。每 10 秒向服务器发送一条 udp 消息“hello”。然后将收到的消息打印到控制台。 udp 服务器被设置为每次收到任何消息时都会发送一个随机数。我不想打印到控制台,而是将此消息发送到 html 页面并打印在 html 页面上。有人可以展示一个快速示例,其中消息将显示在 html 页面的输出框中,该页面将使用新消息进行更新。我已经研究过,一些消息来源说 websockets 不能发出 udp 数据包,但其他人则不然。请帮我澄清一下。

【问题讨论】:

    标签: javascript html node.js sockets


    【解决方案1】:

    节点js-

      io.on('connection', function(socket){
          client.on('message', function(message){
            var temp= message.toString();
            io.emit('temp', temp);
          });
        });
    

    html -

    <script>
    var socket = io();
    socket.on('temp', function(temp){
      $('#messages').html(temp);
    });
    

    在你的节点js中包含上面的代码,消息由client.on接收,然后发送到socket。 html 页面有一个用于接收任何传入消息的套接字侦听器。

    【讨论】:

      【解决方案2】:

      你不能。
      Websockets 是一个独立的协议,不能直接发出原始 UDP 数据包。

      【讨论】:

      • 好吧,这就是我的想法,你知道任何其他向 html 页面发送 udp 数据包的方法吗?现在,我正在渲染 html 页面,但如果我想多次渲染页面,那将无法正常工作,因为 res.render 只能设置一次。
      • +jay 由于安全问题,不可能简单地将 UDP 套接字发送到 HTML 页面。使用任何其他网络通信方式。另外,如果您觉得答案有用,请将其标记为已回答。
      • 而不是发送整个 udp 数据包。我可以在节点 js 中接收 udp 消息,然后使用套接字发出该消息。所以不发射原始UDP数据包。但只是发出已经收到的消息。
      • 是的,您可以使用 node.js 后端作为代理。
      猜你喜欢
      • 2021-08-22
      • 2017-08-11
      • 2018-10-09
      • 2020-07-06
      • 2022-01-03
      • 2021-07-26
      • 2020-06-24
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多