我在使用io.emit时遇到麻烦。我想一个接一个地发送乘法数据,但它只发送第一个数据,而其他的则在程序完成时发送。您知道为什么会发生这种情况吗?这是我的服务器和客户端代码的一部分。
服务器端
var express = require('express');
var http = require('http');
var app = express();
var fs = require('fs');
var path = require('path');
const server = http.Server(app);
const socketIo = require('socket.io');
var io = socketIo(server, { transports: [ 'websocket']});
io.on('connection', (socket) => {
console.log('New connection', socket.handshake.query.username);
console.log('id', socket.id)
socket.on('error', function (result){
console.log(result);
});
});
try {
for (var j = 0, i = 0; (i < Numri_kuponave); j++ , i++) {
if (j === global.filename.length) {
j = 0;
}
var time = parseInt(Interval);
var ms = (time * 1000);
fs.copyFileSync(src + global.filename[j], destDir + Emri_kuponit + '.txt');
console.log('j', j)
console.log('test file', global.filename[j]);
wait(ms);
var content = fs.readFileSync(destErr + Emri_errorit + '.txt', 'utf8');
console.log('para file err', content)
var output = {};
if (content.length > 0 && Config == 1) {
output.filename = global.filename[j];
output.content = content;
response.push(output);
**io.emit('prove', { output });**
break;
} else if (content.length > 0 && Config == 0) {
output.filename = global.filename[j];
output.content = content;
response.push(output);
console.log('output', output)
**io.emit('prove', { output });**
}
}
if (response.length === 0) {
return res.json({
StatusCode: '0',
StatusMessage: 'OK',
StatusDescription: response
});
} else {
**io.emit('prove', {response});**
return res.end();
客户端
let socket = socketIo('http://192.168.0.129:4200/', { transports: ['websocket'] });
socket.on('prove', (data) => {
console.log('onInit', data);
});
所以这是我需要帮助的部分(粗体显示)。我需要将所有关于内容的错误一一发送给客户端,但是这段代码最终将第一个错误和所有其他错误发送给该数组。希望您能为我提供帮助。