MQTT API

Oasis는 IoT 통신을 위한 MQTT를 지원하며, 표준 규격에 맞게 개발되었습니다.

헤더 파일

OasisIot.h

MqttClientEventDelegate 인터페이스

class MqttClientEventDelegate : public std::enable_shared_from_this<MqttClientEventDelegate>
{
public:
    MqttClientEventDelegate();
    virtual ~MqttClientEventDelegate();

    virtual void onConnected(const MqttClientRef &client, const char *client_identifier, mqtt_reason_t reason_code);
    virtual void onSubscribed(const MqttClientRef &client, uint32_t mid, const std::list<std::string> &topic_filters, const std::list<mqtt_reason_t> &reason_codes, mqtt_reason_t reason_code);
    virtual void onUnsubscribed(const MqttClientRef &client, uint32_t mid, const std::list<std::string> &topic_filters, const std::list<mqtt_reason_t> &reason_codes, mqtt_reason_t reason_code);
    virtual void onPublished(const MqttClientRef &client, uint32_t mid, mqtt_reason_t reason_code);
    virtual void onDisconnected(const MqttClientRef &client, mqtt_reason_t reason_code);
    virtual void onMessage(const MqttClientRef &client, const std::string &topic_name, const char *data, int32_t length);
    virtual void onClosed(const MqttClientRef &client);
};
void onConnected ( const MqttClientRef & client , const char * client_identifier , mqtt_reason_t reason_code )
OasisIot.h
매개변수
client 
client_identifier 
reason_code 
void onSubscribed ( const MqttClientRef & client , uint32_t mid , const std::list<std::string> & topic_filters , const std::list<mqtt_reason_t> & reason_codes , mqtt_reason_t reason_code )
OasisIot.h
매개변수
client 
mid 
topic_filters 
reason_codes 
reason_code 
void onUnsubscribed ( const MqttClientRef & client , uint32_t mid , const std::list<std::string> & topic_filters , const std::list<mqtt_reason_t> & reason_codes , mqtt_reason_t reason_code )
OasisIot.h
매개변수
client 
mid 
topic_filters 
reason_codes 
reason_code 
void onPublished ( const MqttClientRef & client , uint32_t mid , mqtt_reason_t reason_code )
OasisIot.h
매개변수
client 
mid 
reason_code 
void onDisconnected ( const MqttClientRef & client , mqtt_reason_t reason_code )
OasisIot.h
매개변수
client 
reason_code 
void onMessage ( const MqttClientRef & client , const std::string & topic_name , const char * data , int32_t length )
OasisIot.h
매개변수
client 
topic_name 
data 
length 
void onClosed ( const MqttClientRef & client )
OasisIot.h
매개변수
client 

함수

const char * mqttReasonCodeString ( mqtt_reason_t code )
OasisIot.h
매개변수
code 
리턴값
MqttBrokerRef mqttCreateBroker ( key_value_map_t & parameters )
OasisIot.h
매개변수
parameters 
리턴값
int32_t mqttDestroyBroker ( MqttBrokerRef & broker )
OasisIot.h
매개변수
broker 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttBorkerStart ( const MqttBrokerRef & broker )
OasisIot.h
매개변수
broker 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttBorkerStop ( const MqttBrokerRef & broker )
OasisIot.h
매개변수
broker 
리턴값
  • 0: 성공
  • -1: 실패
MqttClientRef mqttCreateClient ( key_value_map_t & parameters , const std::shared_ptr<MqttClientEventDelegate> & delegate )
OasisIot.h
매개변수
parameters 
delegate 
리턴값
int32_t mqttClientSetWill ( const MqttClientRef & client , const char * topic_title , const char * content_data , int32_t content_length , int32_t qos , bool retain , const MqttPropertiesRef & properties )
OasisIot.h
매개변수
client 
topic_title 
content_data 
content_length 
qos 
retain 
properties 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientClearWill ( const MqttClientRef & client )
OasisIot.h
매개변수
client 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientSetUserName ( const MqttClientRef & client , const char * username )
OasisIot.h
매개변수
client 
username 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientSetPassword ( const MqttClientRef & client , const char * password )
OasisIot.h
매개변수
client 
password 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientSetPassword ( const MqttClientRef & client , const std::vector<char> & password )
OasisIot.h
매개변수
client 
password 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientConnect ( const MqttClientRef & client , const char * host , int32_t port , int32_t keepalive , bool is_secure , bool use_websocket , int32_t timeout , const MqttPropertiesRef & properties )
OasisIot.h
매개변수
client 
host 
port 
keepalive 
is_secure 
use_websocket 
timeout 
properties 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientReconnect ( const MqttClientRef & client )
OasisIot.h
매개변수
client 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientPublish ( const MqttClientRef & client , const char * topic_title , const char * content_data , int32_t content_length , int32_t qos , bool retain , const MqttPropertiesRef & properties , uint32_t * mid_ptr )
OasisIot.h
매개변수
client 
topic_title 
content_data 
content_length 
qos 
retain 
properties 
mid_ptr 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientSubscribe ( const MqttClientRef & client , const std::list<std::string> & topic_filters , int32_t qos , mqtt_subscribe_option_t options , const MqttPropertiesRef & properties , uint32_t * mid_ptr )
OasisIot.h
매개변수
client 
topic_filters 
qos 
options 
properties 
mid_ptr 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientUnsubscribe ( const MqttClientRef & client , const std::list<std::string> & topic_filters , const MqttPropertiesRef & properties , uint32_t * mid_ptr )
OasisIot.h
매개변수
client 
topic_filters 
properties 
mid_ptr 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttClientDisconnect ( const MqttClientRef & client , int32_t reason_code , const MqttPropertiesRef & properties )
OasisIot.h
매개변수
client 
reason_code 
properties 
리턴값
  • 0: 성공
  • -1: 실패
int32_t mqttDestroyClient ( MqttClientRef & client )
OasisIot.h
매개변수
client 
리턴값
  • 0: 성공
  • -1: 실패

예제