Cliente Akka TCP: como enviar uma mensagem pelo TCP usando o akka actor

Quero enviar mensagens de texto por TCP. Bem fácil. Eu quero fazer isso com akka. Eu li este artigo sobre o akka IO:http://doc.akka.io/docs/akka/snapshot/scala/io-tcp.html

O artigo apresenta uma implementação simples de um cliente TCP, mas não está claro para mim como eu usaria esse cliente.

O construtor usa um InetSocketAddress e um ActorRef. InetSocketAddress faz sentido (presumo que este seja o destino), mas qual é o ActorRef? esta é minha primeira vez usando akka, mas pelo que entendi, o ActorRef é a referência de outro ator. Como meu cliente TCP é um ator e espero que ele se comunique com um servidor TCP, não com outro ator, por que eu daria a ele uma referência de ator?

para que servem os props no objeto complementar?

uma vez instanciado, como eu usaria esse ator para enviar mensagens TCP? Devo apenas enviar uma mensagem com os dados que desejo enviar no formato de um ByteString?

4. qual é a conexão / diferença entre

case Received(data) => 
    listener ! data

e

case data: ByteString =>
    connection ! Write(data)

questionAnswers(1)

yourAnswerToTheQuestion