Witam,
po wysłaniu JSON'a mam następujący problem.
Do klienta, który zgłosi jako pierwszy nie dociera paczka, chociaż sprawdzałem i nie jest wysyłana pusta, tylko dociera do drugiego klienta zawartość prawidłowo.

Proces wysyłania wygląda następująco:
Weryfikacja, czy wszyscy się zgłosili:

case GameSessionReady:
       {
           bool result = _gameSessionReady(_document);
           if(result)
           {
               int RID = searchRoom(SID);
               GameSession *session = gameRooms[RID];
               GameTask *task = new GameTask(nullptr,session,GameSessionReady, SID);
               task->setAutoDelete(true);
               connect(task,SIGNAL(readySignal(QJsonDocument,QJsonDocument, int)),this,SLOT(sendAnswerToPlayers(QJsonDocument, QJsonDocument, int)),Qt::QueuedConnection);
               QThreadPool::globalInstance()->start(task);
           }
           else
           {
               qDebug() << "Failed sendindg decks or not yet ;)\nCheck if all players are ready";
           }
           break;
       }

Następnie zawartośc JSONA jest ładowana i wysyłana:

searchClient(gameRooms[RID]->getPlayersSocketInfo().first())->sendAnswer(_doc)
searchClient(gameRooms[RID]->getPlayersSocketInfo().last())->sendAnswer(_doc2)

Tak wygląda wysyłanie:

bool Client::sendAnswer(QJsonDocument &document)
{
    QByteArray buffer;
    buffer = document.toBinaryData();

    ReportClock::getCurrentDateTime();
    qDebug() << "Sending answer...\nDescription ID: " << socket->socketDescriptor() << "\nThread: " << QObject::thread() << " " << QThread::currentThreadId();

    quint64 result = -1;
    result = socket->write(buffer);
    qDebug() << "Sending result: " << result;
    if(result>0)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Pytanie jest następujące: jak wysłać do obu klientów? Na chwilę ustawiłem nawet warunek na true, aby od razu dostał pierwszy klient paczkę, ale to nic nie dało.

UPDATE:

Problem niby rozwiązany - zmniejszyłem ilość wysyłanych danych i problem znikł. Zastanawiam się, czy w takim razie w metodzie readyRead() nie powinienem dodać jakiegoś loopEvent

Aktualnie odebranie danych wygląda następująco:

void Client::readyRead()
{
    ReportClock::getCurrentDateTime();
    qDebug() << __FUNCTION__;
    QJsonDocument _doc;
    _doc = QJsonDocument::fromBinaryData(socket->readAll());
    qDebug() << "Message:\n" << _doc;

    this->setMessage(_doc);
    emit messageTrigger();
}