56 void SocketContext::sendPublish(
const std::string& topic,
const std::string& message,
bool dup, uint8_t qoS,
bool retain) {
57 LOG(DEBUG) <<
"MQTT (fast): Send PUBLISH";
58 LOG(DEBUG) <<
"MQTT (fast): ============";
60 send(iot::mqtt_fast::packets::Publish(qoS == 0 ? 0 : getPacketIdentifier(), topic, message, dup, qoS, retain));
140 std::size_t SocketContext::onReceivedFromPeer() {
141 const std::size_t consumed = controlPacketFactory.construct();
143 if (controlPacketFactory.isError()) {
144 LOG(ERROR) <<
"MQTT (fast): SocketContext: Error during ControlPacket construction";
146 }
else if (controlPacketFactory.isComplete()) {
147 LOG(DEBUG) <<
"MQTT (fast): ======================================================";
148 LOG(DEBUG) <<
"MQTT (fast): PacketType: " <<
static_cast<uint16_t>(controlPacketFactory.getPacketType());
149 LOG(DEBUG) <<
"MQTT (fast): PacketFlags: " <<
static_cast<uint16_t>(controlPacketFactory.getPacketFlags());
150 LOG(DEBUG) <<
"MQTT (fast): RemainingLength: " <<
static_cast<uint16_t>(controlPacketFactory.getRemainingLength());
152 printData(controlPacketFactory.getPacket().getValue());
154 switch (controlPacketFactory.getPacketType()) {
156 onConnect(iot::mqtt_fast::packets::Connect(controlPacketFactory));
159 onConnack(iot::mqtt_fast::packets::Connack(controlPacketFactory));
162 onPublish(iot::mqtt_fast::packets::Publish(controlPacketFactory));
165 onPuback(iot::mqtt_fast::packets::Puback(controlPacketFactory));
168 onPubrec(iot::mqtt_fast::packets::Pubrec(controlPacketFactory));
171 onPubrel(iot::mqtt_fast::packets::Pubrel(controlPacketFactory));
174 onPubcomp(iot::mqtt_fast::packets::Pubcomp(controlPacketFactory));
177 onSubscribe(iot::mqtt_fast::packets::Subscribe(controlPacketFactory));
180 onSuback(iot::mqtt_fast::packets::Suback(controlPacketFactory));
183 onUnsubscribe(iot::mqtt_fast::packets::Unsubscribe(controlPacketFactory));
186 onUnsuback(iot::mqtt_fast::packets::Unsuback(controlPacketFactory));
189 onPingreq(iot::mqtt_fast::packets::Pingreq(controlPacketFactory));
192 onPingresp(iot::mqtt_fast::packets::Pingresp(controlPacketFactory));
195 onDisconnect(iot::mqtt_fast::packets::Disconnect(controlPacketFactory));
202 controlPacketFactory.reset();