本系列文章记录项目的一些实战经验,从基本使用到底层原理、源码分析等。
1、简单的HTTP服务器,HttpServerCodec:HTTP SERVER 编码解码器。封装了HttpServerRequestDecoder和HttpServerResponseEncoder
2、简单的WebSocket:
server端:HttpServerCodec + ChunkedWriteHandler+HttpObjectAggregator+WebSocketServerProtocolHandler
client端:JS实现见程序示例;或者Java实现:HttpClientCodec+ChunkedWriteHandler+HttpObjectAggregator+WebSocketClientProtocolHandler
另外服务器和客户端之间的消息传输基于WebSocketFrame消息类型(共六种)
3、我们了解这些后,最好的学习方式是先回过头来,学习一下RPC:
1)protobuf
Netty提供官方的Handler支援了protobuf,见程序示例。
2)thrift
Apache下的一个知名项目,Linux下安装需要安装好g++,然后编译安装
对于Java的支持:
写法很像Android的AIDL,RemoteService -> Client
server的组成元素:transport、protocol、server
比较常用的server,THsHaServer:
THsHaServer:1)配置server的transport -- TNonblockingServer的进一步封装,另外TNonblockingServerd的transportFactory必须用TFramedTransport.Factory。 2)配置server的protocol -- TCompactProtocol(压缩的)或者TBinaryProtocol(二进制的)等等。 3)自定义的Processor的实现,thrift编译器自动生成。
需要注意的是client端的protocol和transport需要和server端对应
3)grpc
努力更新中。。。
网友评论