2024-02-01 18:28:27 +08:00
|
|
|
|
#ifndef HXBROADCAST_H
|
|
|
|
|
#define HXBROADCAST_H
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
#include <QUdpSocket>
|
|
|
|
|
|
|
|
|
|
class HxBroadcast : public QObject
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
public:
|
|
|
|
|
static HxBroadcast* context();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 初始化
|
|
|
|
|
*
|
|
|
|
|
* @param port 广播端口
|
|
|
|
|
*/
|
2024-02-04 18:27:06 +08:00
|
|
|
|
static void initialization(int port, QString ip = "");
|
2024-02-01 18:28:27 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 发布消息
|
|
|
|
|
*
|
|
|
|
|
* @param message 消息
|
|
|
|
|
*/
|
|
|
|
|
static void publish(QString message);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 发布消息 (JSON格式)
|
|
|
|
|
*
|
|
|
|
|
* @param action_type 操作类型
|
|
|
|
|
* @param args msgInfo 参数
|
|
|
|
|
*/
|
|
|
|
|
static void publish_json(int action_type, QJsonObject msgInfo);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief 发布消息 (JSON格式)
|
|
|
|
|
*
|
|
|
|
|
* @param action_type 操作类型
|
|
|
|
|
* @param args msgInfo 参数
|
|
|
|
|
*/
|
|
|
|
|
static void publish_json(int action_type, std::initializer_list<QPair<QString, QJsonValue>> args = std::initializer_list<QPair<QString, QJsonValue>>());
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
void publish_achieve(QString message);
|
|
|
|
|
|
|
|
|
|
signals:
|
|
|
|
|
void publish_event(QString message);
|
|
|
|
|
void receive_event(QByteArray data);
|
|
|
|
|
|
|
|
|
|
private slots:
|
|
|
|
|
void receive_ready_read();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
int port;
|
2024-02-04 18:27:06 +08:00
|
|
|
|
QString ip;
|
2024-02-01 18:28:27 +08:00
|
|
|
|
QUdpSocket *socket;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif // HXBROADCAST_H
|