39 lines
919 B
Kotlin
39 lines
919 B
Kotlin
|
package drills.drill06.exercise2
|
||
|
|
||
|
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 subscriber = session.createSubscriber(room)
|
||
|
|
||
|
subscriber.setMessageListener {
|
||
|
println("peer: ${(it as TextMessage).text}")
|
||
|
}
|
||
|
|
||
|
var line = readLine()
|
||
|
val msg = session.createTextMessage()
|
||
|
|
||
|
while (line != ".") {
|
||
|
msg.text = line
|
||
|
publisher.publish(msg)
|
||
|
line = readLine()
|
||
|
}
|
||
|
|
||
|
session.close()
|
||
|
connection.close()
|
||
|
}
|