【发布时间】:2018-04-02 08:13:12
【问题描述】:
我在 nodejs 中创建了一个 Web 服务器架构,它在运行时为网页提供服务。 另一方面,我有一个 Qt GUI 应用程序。 我需要在这两者之间建立一个接口。 我已经使用 QProcess 创建了这两者之间的连接(服务器现在从这个 Qt 应用程序开始) 现在我想在它们之间交换一些数据,例如来自 GUI 和返回的网页上的随机消息。 标准输入/输出在这里有什么用吗? 你能指导我完成这个吗?这是我的服务器代码:
`function init() {
var __website = path.join(__dirname, 'Website/');
var __css = path.join(__dirname, 'css/');
app.use(bodyParser.json());
app.use(express.static(path.join(__website)));
app.get('/', function (req, res, next) {
res.render('index', function (err, html) {
res.send(html);
});
});
app.get('/data/:iValue', function( req, res) {
process.stdin.on('readable', function() {
var chunk = process.stdin.read();
if (chunk != null) {
res.json({response: chunk.toString("UTF-8")});
}
});
process.stdout.write('request_data:' + temperature);
});
}
function initSocket() {
var Session = require('express-session');
var MemoryStore = require('session-memory-store')(Session);
var session = new Session({
store: new MemoryStore(),
secret: 'supersecret',
resave: true,
saveUninitialized: true
})
//io = require('socket.io')(https);
io = new ioServer();
io.use(ios(session));
// In-memory storage
// Begin listening for a websockets connection
io.on('connection', function (socket) {
socket.emit('setRange', data.min, data.max);
socket.emit('setEmails', data.emails);
setInterval(function () {
var temperature;
//var temperature = Math.floor((Math.random() * 20) + 15);
socket.emit('updateTemperature', {
temperature: temperature
});
if (temperature < data.min || temperature > data.max) {
// console.log('alert! ' + temperature + ' min:' + data.min + '
max:' + data.max)
sendEmail(temperature);
socket.emit('alert', {
temperature: temperature,
message: 'Temp is outside of Value Range'
});
}
}, 2000);`
【问题讨论】:
-
请提供Minimal, Complete, and Verifiable您的问题示例
-
尝试使用qwebsocket
标签: node.js qt stdout stdin qprocess