Skip to main content

Send & Receive messages

Courier library provides the functionality of sending & receiving messages through both service interface and MqttClient.

Send/Receive using Service Interface

interface MessageService {
@Receive(topic = "topic/{id}/receive")
fun receive(@Path("id") identifier: String): Observable<Message>

@Send(topic = "topic/{id}/send", qos = QoS.TWO)
fun send(@Path("id") identifier: String, @Data message: Message)
}
messageService.send("user-id", message)

messageService.receive("user-id") { message ->
print(message)
}

Send/Receive using MqttClient

mqttClient.send(message, topic, QoS.TWO)

mqttClient.addMessageListener(topic, object : MessageListener {
override fun onMessageReceived(mqttMessage: MqttMessage) {
print(mqttMessage)
}
})

Note : Only messages for those topics can be received through receive api, which are already subscribed