Slide 11
Slide 11 text
main
fun RabbitTemplate.general(message: GeneralMessage): Unit {
convertAndSend(chatGeneral, "", message.body)
}
fun RabbitTemplate.privately(message: PrivateMessage): Unit {
convertAndSend(message.routingKey, message.body)
}
fun main(args: Array) {
//val log = LoggerFactory.getLogger(RxChatApplicationclass.java)
val context = SpringApplication.run(RxChatApplicationclass.java, *args)
val props = context[ChatPropertiesclass.java]
val name = props.name
println("""
$name, Welcome to the RxKotlin Chat
-Every message that you send will published in the general chat
-To send private messages, use '@' before your friend's alias (e.g.: @JohnDoe Hello)
-To exit use the command ':q!'
""")
val scannerObservable = scanner()
val general = generalObservable(name, scannerObservable)
val priv = privateObservable(name, scannerObservable)
val chat = Chat(context, name, general, priv)
scannerObservable.connect()
chat.latch.await()
}