我對Node和Express.js比較陌生。我正在嘗試創建一個websocket服務器,以一行一行的方式將CSV數據以不規則的間隔存儲在文件本身中。 的CSV結構是這樣的: [超時[毫秒],數據1,數據2,數據3 ...]讀取CSV文件並使用websockets(Node,Socket.io)間隔發送數據
我已經成功地創建了一個websocket服務器與客戶端通信。
我在尋找有效的做這樣的事情一個最好的解決辦法:1。 讀取一行的CSV文件 2.發線使用WebSockets 3.暫停讀取存儲在一段時間該行的第一個值 4.在間隔過去後恢復讀數,並返回步驟1.
到目前爲止,我得到了這麼多(請隨時將我的代碼完全垃圾,因爲它可能是非常錯誤的 - 正如我所說,我是新來的,看起來像暫停()沒有做任何事情,
var $ = require('jquery')
,csv = require('csv');
exports.index = function(server){
var io = require('socket.io').listen(server);
io.sockets.on('connection', function (socket) {
socket.on('startTransmission', function(msg) {
csv()
.from.path('C:/dev/node_express/csv/test.csv', { delimiter: ',', escape: '"' })
.on('record', function(row,index){
var rowArray = $.parseJSON(JSON.stringify(row));
var json = {},
that = this;
$.each(rowArray, function(i,value){
json[keys[i]] = value;
});
socket.emit('transmitDataData', json);
//this.pause(); //I guess around here is where I'd like to pause
// setTimeout(function(){
// that.resume(); //and resume here after the timeout, stored in the first value (rowArray[0])
// }, rowArray[0]);
});
});
});
};
註釋掉的代碼不幸不起作用 - 所有數據立即發送,一排一排,功能不會暫停
是否有任何理由使用jQuery。您不在這裏操縱任何DOM元素。 – user568109
不,沒有 - 我之前正在做實驗,忘記將其刪除。感謝您指出,但它不能解決問題。 – Klon
暫停和恢復不工作?那究竟是什麼問題?代碼看起來應該有效(如果您取消註釋暫停代碼) – AndyD