From 1f7c70a0d1ef141512a9db231585bc650b468bc1 Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Tue, 17 Nov 2015 10:28:50 -0800 Subject: [PATCH] implement proper sending --- .../src/messages/MessagesMixer.cpp | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/assignment-client/src/messages/MessagesMixer.cpp b/assignment-client/src/messages/MessagesMixer.cpp index 16b24088e2..8f69b86367 100644 --- a/assignment-client/src/messages/MessagesMixer.cpp +++ b/assignment-client/src/messages/MessagesMixer.cpp @@ -116,6 +116,31 @@ void MessagesMixer::handleMessages(QSharedPointer packetList, Shar //auto killPacket = NLPacket::create(PacketType::KillAvatar, NUM_BYTES_RFC4122_UUID); //killPacket->write(killedNode->getUUID().toRfc4122()); //nodeList->broadcastToNodes(std::move(killPacket), NodeSet() << NodeType::Agent); + + nodeList->eachMatchingNode( + [&](const SharedNodePointer& node)->bool { + + return node->getType() == NodeType::Agent && node->getActiveSocket() && + _channelSubscribers[channel].contains(node->getUUID()); + }, + [&](const SharedNodePointer& node) { + + qDebug() << "sending a messages:" << message << "on channel:" << channel << "to node:" << node->getUUID(); + + auto packetList = NLPacketList::create(PacketType::MessagesData, QByteArray(), true, true); + + auto channelUtf8 = channel.toUtf8(); + quint16 channelLength = channelUtf8.length(); + packetList->writePrimitive(channelLength); + packetList->write(channelUtf8); + + auto messageUtf8 = message.toUtf8(); + quint16 messageLength = messageUtf8.length(); + packetList->writePrimitive(messageLength); + packetList->write(messageUtf8); + + nodeList->sendPacketList(std::move(packetList), *node); + }); } void MessagesMixer::handleMessagesSubscribe(QSharedPointer packetList, SharedNodePointer senderNode) {