我有一个客户端/服务器套接字,可以执行一些rpc操作。我对finagle有点了解,我发现与Future的隔离非常优雅。所以我的问题是如何在scala中编写一个等待事件的Future(我的客户端请求的服务器回复)。实施可能会使用已确定的请求,但我缺少的是要求未来在没有繁忙等待的情况下等待事件的方式。
答案 0 :(得分:2)
创建Promise
而不是Future
,并为您的事件添加一个符合承诺的侦听器。将承诺的未来归还给您的客户(在Twitter Util未来库中它是承诺本身,在Scala 2.10中它是p.future
)。
答案 1 :(得分:0)
为此,您需要查看Akka Actors
以下是演员的例子
class MyActor extends Actor {
val log = Logging(context.system, this)
def receive = {
case "test" ⇒ log.info("received test")
case _ ⇒ log.info("received unknown message")
}
}