我想通过TCP发送文本消息,使用akka实现。我阅读了关于akka IO的文章:http://doc.akka.io/docs/akka/snapshot/scala/io-tcp.html。文章中提供了一个简单的TCP客户端实现,但我不清楚如何使用该客户端。
1. 构造函数接受一个InetSocketAddress和一个ActorRef。InetSocketAddress是目标地址(我假设是这样),但ActorRef是什么?这是我第一次使用akka,但据我所知,ActorRef是另一个actor的引用。由于我的TCP客户端是一个actor,并且我希望该TCP actor与TCP服务器进行通信,而不是与另一个actor进行通信,那么为什么要给它一个actor ref?
2. 伴随对象中的props函数是什么?
3. 实例化后,我应该如何使用该actor来发送TCP消息?我只需向其发送一个包含我要发送的数据的ByteString格式的消息吗?
4. 这里有什么联系或区别?
1. 构造函数接受一个InetSocketAddress和一个ActorRef。InetSocketAddress是目标地址(我假设是这样),但ActorRef是什么?这是我第一次使用akka,但据我所知,ActorRef是另一个actor的引用。由于我的TCP客户端是一个actor,并且我希望该TCP actor与TCP服务器进行通信,而不是与另一个actor进行通信,那么为什么要给它一个actor ref?
2. 伴随对象中的props函数是什么?
3. 实例化后,我应该如何使用该actor来发送TCP消息?我只需向其发送一个包含我要发送的数据的ByteString格式的消息吗?
4. 这里有什么联系或区别?
case Received(data) =>
listener ! data
并且
case data: ByteString =>
connection ! Write(data)