簡體   English   中英

socket.io 不刷新數據

[英]socket.io is not refreshing data

我試圖在每次文件更改時使用 socket.io 顯示文件大小。 這是我的js代碼。

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res){
    res.sendfile('index.html');
});
var fs = require("fs");
var filesize;
var filename = 'D:\\test.txt';

fs.watchFile(filename, function() {
    fs.open(filename, 'r', function(err, fd) {
        fs.stat(filename, function(err, stat) {
            if(err) { console.log('error');  }
            console.log(stat.size);
            filesize = stat.size;
        });
    })
});

io.on('connection', function(socket){
    console.log('A user connected');
    socket.emit('testerEvent', { description: prntarr});
    socket.on('clientEvent', function(data){
        console.log(data);
    });
    socket.on('disconnect', function () {
        console.log('A user disconnected');
    });

});

http.listen(3000, function(){
    console.log('listening on localhost:3000');
});

問題是,套接字未刷新數據,但控制台顯示大小已更改。 它僅在我重新加載頁面時刷新。 請建議我在哪里出錯以及如何解決它。

提前致謝。

您需要在fs.watchFile()回調中執行socket.emit() 當前文件更改時,您沒有發出任何內容


  • 當用戶連接時,將他的socket推入一個數組中。
  • watchFile回調中,遍歷連接的套接字 Array 和.emit()想要發送的內容。
  • 不要忘記從該陣列中刪除任何已斷開連接的sockets

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM