Play框架的Netty Http服务器实现
来源:互联网 发布:淘宝登录界面刷不出来 编辑:程序博客网 时间:2024/06/07 17:11
Play使用Bootstrap初始化服务器Channel,设置Channel类,EventLoop和Handler等。 (Play没有使用专为服务器准备的ServerBoostrap,而是使用更加通用的Bootstrap。这样就可以自己安排对客户端Channel的设置)
private def bind(address: InetSocketAddress): (Channel, Source[Channel, _]) = {
val serverChannelEventLoop = eventLoop.next
// Watches for channel events, and pushes them through a reactive streams publisher.
val channelPublisher = new HandlerPublisher(serverChannelEventLoop, classOf[Channel])
val channelClass = transport match {
case Native => classOf[EpollServerSocketChannel]
case Jdk => classOf[NioServerSocketChannel]
}
//使用Bootstrap创建服务器Channel
val bootstrap = new Bootstrap()
.channel(channelClass)
.group(serverChannelEventLoop)
.option(ChannelOption.AUTO_READ, java.lang.Boolean.FALSE) // publisher does ctx.read()
.handler(channelPublisher)
.localAddress(address)
setOptions(bootstrap.option, nettyConfig.getConfig("option"))
val channel = bootstrap.bind.await().channel()
//将服务器Channel收集到allChannels中
allChannels.add(channel)
//返回服务器Channel, 和Akka Stream Source
(channel, Source.fromPublisher(channelPublisher))
}
当有新的客户端连接服务器时,服务器Channel上的Handler HandlerPublisher会读取到新连接的客户端Channel,然后将客服端Channel发布到到Akka Stream。在Akka Stream Sink中进行客户端Pipeline的设置和Event loop的绑定,并将所有的客户端Channel收集到NettyServer.allChannels属性中。
阅读全文
0 0
- Play框架的Netty Http服务器实现
- netty实现http服务器
- 用Netty实现的简单HTTP服务器
- 用Netty实现的简单HTTP服务器
- 用Netty实现的简单HTTP服务器
- Netty实现简单HTTP服务器
- netty 对 http 的实现
- netty同时做HTTP和websocket服务器并且实现HTTP路由的思路
- netty服务器搭建-http
- 网络编程知识(5)--用Netty实现的一个简单的HTTP服务器
- 使用Netty构建APP后台服务器实现http请求
- Netty框架实现简单的组播
- netty实现高性能的rpc框架
- Netty实现的websocket推送框架
- Netty 实现HTTP文件服务器
- Netty 实现HTTP文件服务器
- Netty 实现HTTP文件服务器
- nginx 配置为play!的前端http服务器
- android small资源加载
- Java学习第六天
- NOIP2000提高组 进制转换
- 美国iPhone出新品,苹果新总部也将竣工,哪个更让你期待?
- 基础练习 BASIC-9 特殊回文数
- Play框架的Netty Http服务器实现
- 【086】部署nodejs程序时,如何把自己用到的npm模块封装成Docker镜像,方便在离线的时候使用?
- 线性查找
- C
- const in C++
- const的用法
- 基础练习 BASIC-10 十进制转十六进制
- 第四周项目二_建设“单链表”算法库
- MT 191 Request for Payment of Charges, Interest and Other Expenses收费、利息和其他费用支付请求 参考Common Group Mess