Netty 介绍本指南对Netty 进行了介绍并指出其意义所在。1. 问题现在,我们使用适合一般用途的应用或组件来和彼此通信。例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web services进行远程方法的调用。然而,一个适合普通目的的协议或其实现并不具备其规模上的扩展性。例如...
分类:
Web程序 时间:
2014-09-15 19:06:19
阅读次数:
257
http://blog.csdn.net/u013252773/article/details/21195593Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行...
分类:
Web程序 时间:
2014-09-15 12:45:28
阅读次数:
329
http://blog.csdn.net/u013252773/article/details/21254257本文主要介绍如何通过Netty构建一个简单的http服务。想要实现的目的是:1、Client向Server发送http请求。2、Server端对http请求进行解析。3、Server端向c...
分类:
Web程序 时间:
2014-09-15 12:43:58
阅读次数:
322
1.定义proto文件:
User.proto
package netty;
option java_package="myprotobuf";
option java_outer_classname="UserProto";
message User{
requir...
分类:
其他好文 时间:
2014-09-14 23:34:37
阅读次数:
344
Netty3 源码分析 - ChannelFuture
ChannelFuture抽象的是Channel中异步IO操作的结果。在Netty中,所有的IO操作是异步的,意味着任何IO调用会立刻返回,而不是等到操作真正的执行完成。相反,会返回一个ChannelFuture 对象,在IO完成之后通过其得到结果状态。ChannelFuture 要么完成要么未完成,当IO操作开始执行会创建一个新的...
分类:
Web程序 时间:
2014-09-13 21:33:05
阅读次数:
447
Netty是基于流的消息传递机制。Netty框架中,所有消息的传输都依赖于ByteBuf接口,ByteBuf是Netty NIO框架中的缓冲区。ByteBuf接口可以理解为一般的Byte数组,不过Netty对Byte进行了封装,增加了一些实用的方法。...
分类:
Web程序 时间:
2014-09-13 12:11:05
阅读次数:
421
前面关注的地方都是Netty采用的流水线处理方式的组织方式,ChannelHandler如何管理,通道状态,通道事件等这些上层的架构设计,那么Netty中如何实现诸如套接字绑定,连接,关闭等这些底层的操作呢?不能只顾着套用API写程序,却对细节不求甚解。这里大致追踪下OIO模式下Channel中套接字绑定的实现,(NIO以后分析)其实逻辑都是一样的,只是在线程模型的地方时不同的。
大致过程如下(...
分类:
Web程序 时间:
2014-09-12 17:10:13
阅读次数:
175
开发过Web应用的同学应该都会使用session。由于HTTP协议本身是无状态的,所以一个客户端多次访问这个web应用的多个页面,服务器无法判断多次访问的客户端是否是同一个客户端。有了session就可以设置一些和客户端相关的属性,用于保持这种连接状态。例如用户登录系统后,设置session标记这个...
分类:
Web程序 时间:
2014-09-11 10:56:31
阅读次数:
346
在同步阻塞的网络编程中,代码都是按照TCP操作顺序编写的,即创建连接、多次读写、关闭连接,这样很容易判断这一系列操作是否是同一个连接。而在事件驱动的异步网络编程框架中,IO操作都会触发一个事件调用相应的事件函数,例如接收到客户端的新数据,会调用messageReceived(MINA)、channelRead(Netty)、dataReceived(Twisted),同一个TCP连接的多次请求和多个客户端请求都是一样的。
那么如何判断多次请求到底是不是同一个TCP连接,如何保存连接相关的信息?针对这个问题,...
分类:
Web程序 时间:
2014-09-10 14:13:00
阅读次数:
208
Netty3 源码分析 - Channel
何为通道(Channel)?代表的是一个网络套接字的连接点(nexus)。
一个通道抽象的内容包括:
1)当前通道状态,是否打开,是否绑定等;
2)通道的配置参数信息,如套接字缓冲区大小;
3)通道支持的IO操作;
4)处理和这个Channel相关的IO事件和请求的ChannelPipeline。
在Netty中所有的IO操...
分类:
Web程序 时间:
2014-09-09 16:03:08
阅读次数:
300