默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
netty编译器对与后续操作有多大影响
阅读(28701) | 评论(4 收藏 淘帖
1.netty有很多自带编码器,如何根据前台传递过来的参数动态选取不同的编码器,比如htpp和socket。
2.如果不设置编码器,传递过来的参数如何处理。如何校验传递过来参数是不是我想要的(比如一个对象)。

3.如果传递过来的参数是http需要进过HttpServerCodec()HttpObjectAggregator(64*0024) ChunkedWriteHandler()编译器处理后,参数需要通过instanceof HttpRequest 进行判断?这个如果传递过来的参数是socket链接的参数,进过上面几个编译器处理后还能解析出来?
4.在线消息推送给对应用户、离线消息保存到数据库,我判断是否在线的依据是什么,在线指的是连上netty服务端的用户?离线记录相反?还是说按照其他来判断,用什么判断  !------------------
修改为如下问题:
1.netty自带编辑器:我能根据传递参数类型不同 通过不同的编辑器处理?
2.netty我不设置编辑器,通过ch.pipeline().addLast(new ClientPoHandlerProto());进入public class ClientPoHandlerProto extends ChannelInboundHandlerAdapter  中的public void channelRead(ChannelHandlerContext ctx, Object msg) 方法,我怎么校验msg 参数是我需要类型(object1和object2或object3);
3.netty编译器如果设置为http的编译器,那我通过java中socket链接传递过来的序列化对象(object1)和http的参数如何区分和解析
2018年6月8日 16

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门下一篇:自定义的UDP私有协议,消息头为什么要加消息长度?
推荐方案
评论 4
第一,你问的问题文不对题
第二,逻辑有点混乱,没看明白你要问的问题重点是什么,或者你把问题一个一个问。

这样子真是无从回答
1.netty自带编辑器:我能根据传递参数类型不同 通过不同的编辑器处理?
2.netty我不设置编辑器,通过ch.pipeline().addLast(new ClientPoHandlerProto());进入public class ClientPoHandlerProto extends ChannelInboundHandlerAdapter  中的public void channelRead(ChannelHandlerContext ctx, Object msg) 方法,我怎么校验msg 参数是我需要类型(object1和object2或object3);
3.netty编译器如果设置为http的编译器,那我通过java中socket链接传递过来的序列化对象(object1)和http的参数如何区分和解析
2018年6月8日 16
引用:cha8511995 发表于 2018-06-08 16:47
1.netty自带编辑器:我能根据传递参数类型不同 通过不同的编辑器处理?
2.netty我不设置编辑器,通过ch.pip ...

如果你的协议格式很多样,且私有化的话,你完全可以从字节流这一级自已来解析,以前没有这些现成框架的时候不都是自已解析吗。

至于http,你大不必混在netty这种框架里,直接用各种通用的http服务器来处理不就完了,而且后期的负载均衡、性能优化都可解决多了,因为Http本身就很通用,你没有必要自已造轮子吧
很好的问题!我全部都看懂了,我也有过同样的困惑,首先,自带的解码器只能处理一种格式,比如你把HttpServerCodec和ObjectEncoder用时都addLast了,启动时没有问题的,但是你发过去的消息,所有的channelRead都不会响应的.我的需求是一边要与websocket通讯,一边要与socket通讯,现在的做法是把socket这边模拟成websocket然后进行通讯,其实通过自定义编解码是可以解决问题的,只不过技术不到位,如果有兴趣,欢迎加我qq214529167进行探讨
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部