Проблема с излучением с помощью socket.io node.js & angular 6 - PullRequest
0 голосов
/ 28 марта 2019

У меня проблемы с 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);
});

Так что это та часть, в которой мне нужна помощь (жирный). Мне нужно отправить клиенту все ошибки по содержанию одну за другой, но этот код отправляет первую и все остальные ошибки в конце этого массива. Надеюсь, вы мне поможете. Спасибо заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...