[英]Forward data from UDP Socket to HTTP Server Node.js
我正在寻找通过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
想法? 丹尼斯
这条线看起来很可疑:
socket.on('udp message', function(message) { res.end(message) });
客户端代码在浏览器中运行,您无法访问res
对象。 您可以尝试alert
:
socket.on('udp message', function(message) { alert(message) });
在实际应用程序中,您可能希望处理消息并相应地修改页面的HTML。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.