mirror of
https://github.com/overte-org/overte.git
synced 2025-04-21 06:44:06 +02:00
add message received signal
This commit is contained in:
parent
e7a8df306c
commit
5b9791d800
5 changed files with 22 additions and 35 deletions
|
@ -9,22 +9,13 @@
|
|||
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
|
||||
#include <cfloat>
|
||||
#include <random>
|
||||
|
||||
#include <QtCore/QCoreApplication>
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QJsonObject>
|
||||
#include <QtCore/QTimer>
|
||||
#include <QtCore/QThread>
|
||||
#include <QBuffer>
|
||||
|
||||
#include <LogHandler.h>
|
||||
#include <NodeList.h>
|
||||
#include <udt/PacketHeaders.h>
|
||||
#include <SharedUtil.h>
|
||||
#include <UUID.h>
|
||||
#include <TryLocker.h>
|
||||
|
||||
#include "MessagesMixer.h"
|
||||
|
||||
|
@ -46,7 +37,6 @@ MessagesMixer::~MessagesMixer() {
|
|||
}
|
||||
|
||||
void MessagesMixer::nodeKilled(SharedNodePointer killedNode) {
|
||||
qDebug() << "MessagesMixer::nodeKilled()... node:" << killedNode->getUUID();
|
||||
// FIXME - remove the node from the subscription maps
|
||||
}
|
||||
|
||||
|
@ -67,7 +57,6 @@ void MessagesMixer::handleMessages(QSharedPointer<NLPacketList> packetList, Shar
|
|||
auto messageData = packet.read(messageLength);
|
||||
QString message = QString::fromUtf8(messageData);
|
||||
|
||||
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
|
||||
nodeList->eachMatchingNode(
|
||||
|
|
|
@ -35,4 +35,9 @@ Script.update.connect(function (deltaTime) {
|
|||
//print(message);
|
||||
Messages.sendMessage(channel, message);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Messages.messageReceived.connect(function (channel, message) {
|
||||
print("message received on channel:" + channel + ", message:" + message);
|
||||
});
|
|
@ -260,8 +260,6 @@ void DomainHandler::requestDomainSettings() {
|
|||
|
||||
Assignment::Type assignmentType = Assignment::typeForNodeType(DependencyManager::get<NodeList>()->getOwnerType());
|
||||
|
||||
qCDebug(networking) << "Requesting settings from domain server for assignmentType:" << assignmentType;
|
||||
|
||||
auto packet = NLPacket::create(PacketType::DomainSettingsRequest, sizeof(assignmentType), true, false);
|
||||
packet->writePrimitive(assignmentType);
|
||||
|
||||
|
|
|
@ -40,31 +40,25 @@ void MessagesClient::init() {
|
|||
}
|
||||
}
|
||||
|
||||
bool haveMessagesMixer() {
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
SharedNodePointer messagesMixer = nodeList->soloNodeOfType(NodeType::MessagesMixer);
|
||||
|
||||
if (!messagesMixer) {
|
||||
qCWarning(messages_client) << "Could not complete MessagesClient operation "
|
||||
<< "since you are not currently connected to a messages-mixer.";
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void MessagesClient::handleMessagesPacket(QSharedPointer<NLPacketList> packetList, SharedNodePointer senderNode) {
|
||||
QByteArray data = packetList->getMessage();
|
||||
auto packetType = packetList->getType();
|
||||
QByteArray packetData = packetList->getMessage();
|
||||
QBuffer packet{ &packetData };
|
||||
packet.open(QIODevice::ReadOnly);
|
||||
|
||||
if (packetType == PacketType::MessagesData) {
|
||||
QString message = QString::fromUtf8(data);
|
||||
qDebug() << "got a messages packet:" << message;
|
||||
}
|
||||
quint16 channelLength;
|
||||
packet.read(reinterpret_cast<char*>(&channelLength), sizeof(channelLength));
|
||||
auto channelData = packet.read(channelLength);
|
||||
QString channel = QString::fromUtf8(channelData);
|
||||
|
||||
quint16 messageLength;
|
||||
packet.read(reinterpret_cast<char*>(&messageLength), sizeof(messageLength));
|
||||
auto messageData = packet.read(messageLength);
|
||||
QString message = QString::fromUtf8(messageData);
|
||||
|
||||
emit messageReceived(channel, message);
|
||||
}
|
||||
|
||||
void MessagesClient::sendMessage(const QString& channel, const QString& message) {
|
||||
qDebug() << "MessagesClient::sendMessage() channel:" << channel << "message:" << message;
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
SharedNodePointer messagesMixer = nodeList->soloNodeOfType(NodeType::MessagesMixer);
|
||||
|
||||
|
@ -89,7 +83,6 @@ void MessagesClient::sendMessage(const QString& channel, const QString& message)
|
|||
// in the event that they mixer goes away and/or comes back we should automatically
|
||||
// resubscribe to those channels
|
||||
void MessagesClient::subscribe(const QString& channel) {
|
||||
qDebug() << "MessagesClient::subscribe() channel:" << channel;
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
SharedNodePointer messagesMixer = nodeList->soloNodeOfType(NodeType::MessagesMixer);
|
||||
|
||||
|
@ -101,7 +94,6 @@ void MessagesClient::subscribe(const QString& channel) {
|
|||
}
|
||||
|
||||
void MessagesClient::unsubscribe(const QString& channel) {
|
||||
qDebug() << "MessagesClient::unsubscribe() channel:" << channel;
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
SharedNodePointer messagesMixer = nodeList->soloNodeOfType(NodeType::MessagesMixer);
|
||||
|
||||
|
|
|
@ -32,6 +32,9 @@ public:
|
|||
Q_INVOKABLE void subscribe(const QString& channel);
|
||||
Q_INVOKABLE void unsubscribe(const QString& channel);
|
||||
|
||||
signals:
|
||||
void messageReceived(const QString& channel, const QString& message);
|
||||
|
||||
private slots:
|
||||
void handleMessagesPacket(QSharedPointer<NLPacketList> packetList, SharedNodePointer senderNode);
|
||||
void handleNodeKilled(SharedNodePointer node);
|
||||
|
|
Loading…
Reference in a new issue