将数据从UDP套接字转发到HTTP服务器Node.js

我正在寻找通过UDP连接正在检索的数据创build一个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); 

一切都很好地recv'ing UDP数据stream,创buildXML文档,我可以看到XML被发送到WebSocket但我无法检索XML。 基本上,我想要一个用户连接到Web服务后连续streamXML

想法? 丹尼斯

这条线对我来说很可疑:

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

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

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

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