Я пытаюсь внедрить RabbitMQ в мое приложение для Android, но у меня проблема с тем, что внутри метода handleDelivery
, когда я пытаюсь вызвать внешнюю функцию, соединение теряется.
private fun initRabbitmq () {
factory.setUri("someURI")
subscribeThread = Thread(object : Runnable {
override fun run() {
val connection: Connection = factory.newConnection()
val channel: Channel = connection.createChannel()
val consumer: DefaultConsumer
consumer = object : DefaultConsumer(channel) {
override fun handleDelivery(consumerTag: String?, envelope: Envelope?, properties: AMQP.BasicProperties?, body: ByteArray?) {
super.handleDelivery(consumerTag, envelope, properties, body)
val msg = String(body!!, Charsets.UTF_8)
Log.e(TAG, "RabbitMQ - $msg")
showRabbitMessage(msg)
}
}
channel.basicConsume("defenders_test", true, consumer)
}
})
subscribeThread.start()
}
Когда выполняется функция showRabbitMessage()
, соединение теряется, но если я удаляю его и смотрю журналы, сообщения отображаются в консоли.
Есть идеи, как вывести сообщение из темы?
Спасибо заранее!