您的位置:首页 > 其它

spray-can的初识

2015-09-12 15:11 363 查看
1.根据自已的理解

其实spray-can的主要部分有 IO-HTTP,listener与handle

IO-HTTP是我们的system actor后,listener actor前的一个actor,他负责管理TCP,HTTP等的"管理员"

the manager actor for the given IO extension

而listener是一个注册在IO Actor的,绑定在指定的port

我们可以通过

IO(Http) ! Http.Bind(lis, interface = "localhost",port=8080)
IO(Http) ! Http.Bind(lis2,interface = "localhost",port=8081)

进行绑定,Bind的接受方其实是个 HttpListener实例,这个实例是private,只能用messages进行互动(以后可以用于stop,或者获取stats信息等),

例如向第一个HttpListener获取stats的信息

system.actorSelection("/user/IO-HTTP/listener-0") ! Http.Unbind


如果成功了lis,lis2就是request handle,可对用户请求response

绑定后

[INFO] [09/12/2015 14:53:28.084] [mySystem-akka.actor.default-dispatcher-4] [akka://mySystem/user/IO-HTTP/listener-0] Bound to localhost/127.0.0.1:8080
[INFO] [09/12/2015 14:53:28.084] [mySystem-akka.actor.default-dispatcher-7] [akka://mySystem/user/IO-HTTP/listener-1] Bound to localhost/127.0.0.1:8081


还有一个需要注意的是我们的request在"handle"居然也是一个actor,不过要注意的是这个actor是没有注册的,所以他无法远程通过actorSelect选中,这也是说我们的service actor是要保持在同一个jvm下的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: