HxUtils/HxBroadcast.h
2024-02-04 18:28:34 +08:00

60 lines
1.3 KiB
C++

#ifndef HXBROADCAST_H
#define HXBROADCAST_H
#include <QObject>
#include <QUdpSocket>
class HxBroadcast : public QObject
{
Q_OBJECT
public:
static HxBroadcast* context();
/**
* @brief 初始化
*
* @param port 广播端口
*/
static void initialization(int port, QString ip = "");
/**
* @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;
QString ip;
QUdpSocket *socket;
};
#endif // HXBROADCAST_H