#ifndef HXBROADCAST_H #define HXBROADCAST_H #include #include 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> args = std::initializer_list>()); 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