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: 실패