lm-sistemi-software-distrib.../src/main/kotlin/drills/drill06/exercise3/ChatClient.kt

42 lines
1.0 KiB
Kotlin

package drills.drill06.exercise3
import org.apache.activemq.ActiveMQConnectionFactory
import javax.jms.Session
import javax.jms.TextMessage
import javax.jms.TopicConnectionFactory
fun main() {
val factory: TopicConnectionFactory = ActiveMQConnectionFactory()
val connection = factory.createTopicConnection()
connection.start()
val session = connection.createTopicSession(
false,
Session.AUTO_ACKNOWLEDGE
)
val room = session.createTopic("movies")
val publisher = session.createPublisher(room)
val selector = "Subtopic = 'Dark Comedy'"
val subscriber = session.createSubscriber(room, selector, true)
subscriber.setMessageListener {
println("peer: ${(it as TextMessage).text}")
}
var line = readLine()
val msg = session.createTextMessage()
while (line != ".") {
msg.text = line
msg.setStringProperty("Subtopic", "Dark Comedy")
publisher.publish(msg)
line = readLine()
}
session.close()
connection.close()
}