feat: add chatting by ID

This commit is contained in:
semenov
2025-07-30 11:30:55 +03:00
parent 5076da14e0
commit 88239e8491
23 changed files with 113 additions and 160 deletions

View File

@@ -120,55 +120,23 @@ void CommonClientHandler::slot_sendPacketToAllClients(PacketType packetType)
}
}
void CommonClientHandler::slot_msgToClientFromGUI(QString login, QString text)
void CommonClientHandler::slotSendMessage(QString idFrom, QString idTo, QString text)
{
QString textMsg = text;
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(textMsg);
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(idFrom,idTo,text);
//Проходим все открытые сокеты, ищем нужный
foreach(int idSocket, clientsMap->keys())
{
ClientHandler *handler = clientsMap->value(idSocket);
if(handler->getClient()->getLogin() == login)
{//Отправляем ему
handler->sendXmlAnswer(byteArrayMsg);
QString peerAddress = handler->getSocket()->peerAddress().toString();
QString peerPort = QString::number(handler->getSocket()->peerPort());
QString str = "Msg To Client [" + peerAddress + ":" + peerPort + "] : " + textMsg;
emit sigSendToLogger(str);
break;
}
}
}
void CommonClientHandler::slot_msgToGUIfromClient(QString login, QString text)
{
QString textMsg = text;
QByteArray byteArrayMsg = dataParser->ClientAnswer()->message(textMsg, login);
//Проходим все открытые сокеты, ищем нужный
foreach(int idSocket, clientsMap->keys())
{
ClientHandler *handler = clientsMap->value(idSocket);;
if(handler->getClient()->getTypeClient() == TypeClientAutorization::TYPE_GUI)
{//Отправляем GUI-клиенту для отображения в Мессенджере
if(handler->getClient()->getId() == idTo)
{
handler->sendXmlAnswer(byteArrayMsg, PacketType::TYPE_XMLANSWER);
QString peerAddress = handler->getSocket()->peerAddress().toString();
QString peerPort = QString::number(handler->getSocket()->peerPort());
QString str = "Msg From Client [" + peerAddress + ":" + peerPort + "] : " + textMsg;
QString str = "Msg From Client [" + idFrom + " to " + idTo + "] : " + textMsg;
emit sigSendToLogger(str);
break;
break;
}
}
}