【发布时间】:2018-06-13 05:27:35
【问题描述】:
作为一个新手,我正在编写一个简单的应用程序,它将监视我服务器中的文本文件,并且每当文本文件发生任何更改时,我都必须将文件内容发送到客户端。
我正在使用node.js 和angular。
目前我正在考虑将 socket.io 与 express 一起使用,但不确定它是否正确。
需要帮助才能找到正确的方法。
我的示例服务器代码如下。
var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var fs = require('fs');
var filePath = 'C:\\MyPrograms\\testfile.txt';
var file = fs.readFileSync(filePath);
app.use(express.static(__dirname + '/public'));
io.on('connection', function(socket) {
console.log('new connection');
});
server.listen(4041, function() {
console.log('server up and running at 4041 port');});
console.log('Initial File content : ' + file);
fs.watch(filePath, function(event, filename) {
if(filename){
file = fs.readFileSync(filePath);
console.log('File content : ' + file);
io.emit('filemodified', { message: 'Content Changed' });
} else{
console.log('filename not provided')
}
});
还请建议我是否可以使用 nodemon 来代替 socket.io。
【问题讨论】:
-
不太清楚你在问什么。如果您有特定问题(即“客户永远不会收到更改通知”或“第 X 行发生错误(带有详细信息)”),请指定。
-
因为我是一个新手,所以只是想知道我是否按照我的要求走正确的路,或者这只是矫枉过正。此外,当我运行上面的脚本时,我的客户端永远不会收到通知,我只会在控制台上收到大量连续的新连接消息。
标签: javascript angularjs node.js socket.io