मैं एक्सप्रेस-डब्ल्यूएस https://www.npmjs.com/package/express-ws (एपीआई जो एक्सप्रेस और वेबस्केट क्लाइंट के लिए सर्वर बनाने में मदद करता है) का उपयोग कर रहा हूं।एक्सप्रेस-डब्ल्यू समय-समय पर कस्टम ईवेंट की जांच कैसे करें और स्वचालित रूप से कार्रवाई करें
app.ws('/', function(ws, req) {
console.log("New connection")
if (content.length > 0) {
console.log(content)
ws.send(content)
}
ws.on('message', function(msg, flags) {
console.log("Received "+ msg);
});
ws.on('data', function(msg, flags) {
var data = []; // List of Buffer objects
res.on("data", function(chunk) {
data.push(chunk); // Append Buffer object
console.log(data)
})
})
});
अब आप उपरोक्त कोड के साथ देख सकते हैं, जब भी एक कनेक्शन यह बनाई गई है सामग्री की लंबाई की जाँच करता है और ग्राहक के लिए conetent भेजता है और अधिक से अधिक 0.
रूटर कोड के बाद, वेब अनुरोध पर, अद्यतन करता है फ़ाइल। यदि इस फ़ाइल को संशोधित किया गया था, तो कनेक्शन निर्माण के कुछ समय बाद, इस कनेक्शन को इसके बारे में पता नहीं है और इसलिए फ़ंक्शन भेजने को नहीं कहा जाता है। मैंने fs.watch भी कोशिश की लेकिन मैं इसे काम करने में सक्षम नहीं हूं।
router.post('/run_restart', function(req, res, next) {
text = '{"to_do": "run_test", "devices":"all", "argv": { "test": "' + req.body.cmd + '", "cycles": "' + req.body.cycles + '", "awake_for": "' + req.body.wt + '" }}'
path = process.env['HOME']+'/Desktop/automation/Stressem/StressemWeb/bin/task.txt'
fs.writeFile(path, text)
res.render('home.jade', { title: 'Stressem' });
});
fs.watch(file, function (event) {
fs.stat(file, function (err, stats) {
if(stats.size>80){
console.log("Event: " + event);
fs.readFile(file, 'utf8', function (err, data) {
if (err) throw err;
content = data.toString();
});
}
});
जब भी फ़ाइल अपडेट की जाती है, तो मुझे क्या चाहिए, ws.send को वेबस्केट कनेक्शन में से किसी एक के लिए बुलाया जा सकता है।
धन्यवाद आप इस में देख rtime के लिए है। लेकिन समस्या वही बना है। मैं इस फ़ंक्शन को किसी विशेष कनेक्शन के लिए कैसे कॉल करूं? –
यह जांचें http://stackoverflow.com/questions/9935920/how-to-write-a-node-js-function-that-waits-for-an-event-to-fire-before-returnin – bmavus