【问题标题】:Forward data from UDP Socket to HTTP Server Node.js将数据从 UDP Socket 转发到 HTTP Server Node.js
【发布时间】:2013-06-07 12:33:48
【问题描述】:

我希望从通过 UDP 连接检索的数据创建 Web 服务,并决定使用 Node.js 和 Socket.IO,但是我认为这种组合并没有给我结果我想要。我希望有人能指出我正确的方向。

现在,我有以下内容:

// require http, socket and socket.io
var http     = require('http');
var dgram    = require('dgram');
var socketio = require('socket.io');

// setup HTTP server, Socket.IO and UDP Socket
var server = http.createServer( handleRequest ),
    io = socketio.listen(server),
    socket = dgram.createSocket("udp4");

// Every time I receive a UDP Message
socket.on("message", function(msg,rinfo) {
    // create a buffer we will store to
    var buffer = new Buffer(msg.length);

    // copy entire message into buffer
    msg.copy(buffer, 0, 0, msg.length);

    // if the message has length > 3
    if ( buffer.length > 3 ) {                
            .... take data off the socket ....

            // Create an XML document
            var xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
            xml += ... ;
            xml += ... ;

            // emit a udp message event
            io.sockets.emit('udp message', xml);                
    }
});

function handleRequest(req, res) {
    res.writeHead(200, {'content-type': 'text/html'});
    res.end("<!doctype html> \
        <html><head> \
        <script src='/socket.io/socket.io.js'></script> \
        <script> \
            var socket = io.connect('localhost', {port: 8888}); \
            socket.on('udp message', function(message) { res.end(message) }); \
        </script></head></html>");
}

socket.bind(9876);
server.listen(8888);

在接收 UDP 数据流、创建 XML 文档时一切正常,我可以看到 XML 正在发送到 WebSocket,但是我无法检索 XML。基本上,一旦用户连接到 Web 服务,我希望持续流式传输 XML

想法? 丹尼斯

【问题讨论】:

  • 嗨丹尼斯,项目进展如何?我目前正在设计类似的东西。你的经验有什么建议吗?谢谢

标签: node.js express udp socket.io


【解决方案1】:

这条线在我看来很可疑:

socket.on('udp message', function(message) { res.end(message) });

客户端代码在浏览器中运行,你不能访问res对象。你可以试试alert

socket.on('udp message', function(message) { alert(message) });

在实际应用程序中,您可能希望处理消息并相应地修改页面的 HTML。

【讨论】:

    猜你喜欢
    • 2013-01-17
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多