
netty
文章平均质量分 81
arctan90
这个作者很懒,什么都没留下…
展开
-
【Netty】实现Netty4的web socket服务,比如聊天室的原型
业务需要实现一个web socket,没考虑Tomcat,Tomcat那个容量简直惨不忍睹,居然还有人推荐用。基本是照着官方样例来的:server入口http://netty.io/4.0/xref/io/netty/example/http/websocketx/server/WebSocketServer.html服务加载的channel生成器http://netty.io原创 2016-04-05 20:04:14 · 5101 阅读 · 0 评论 -
【Netty4 简单项目实践】十二、客户端连接池-压测利器
【前言】之前想写压测工具来着,但是没有很好的分析工具,所以没什么动力写。最近学会了用阿尔萨斯赶紧把压测工具补上了,疯狂的压榨服务器性能。用Netty已有的连接池模型,可以省去自己维护连接保活的工作。本来写了5个类,整理了一下代码发现非常简单,基础类就一个。【连接池】忘记自己借鉴了谁的代码,客户端连接池采用Netty的ChannelPoolMap接口,用网络连接地址做Key,用Fixed原创 2017-12-28 14:19:18 · 4064 阅读 · 1 评论 -
【Netty4 简单项目实践】十三、WebSocket Over ProtocolBuf
【前言】之前用TCP模式传输ProtocolBuf模式,后面上了一个websocket传输ProtocolBuf业务,目前基本已经稳定了,现在把编解码器部分记录下来。【server部件的组装】核心思想是ProtocolBuf是byte[]流,而websocket对象在Netty自带的编解码中是对象,其中的数据部分是pb序列化后的字节流(即,ws的内容是二进制字节数组)所以在编码器和解码原创 2018-01-12 12:00:51 · 1088 阅读 · 2 评论 -
【Netty4 简单项目实践】十一、用Netty分发mpegts到websocket接口
【前言】推视频流的时候,rtmp会有3秒的延迟。目前有一种解决方案是用mpegts的格式解决。如果考虑用ffmpeg来推流的话,可以使用http格式和udp格式来推流。现在要做的事情是用Netty来转发rtmp到websocket接口上,然后用H5来播放。播放的插件使用jsmpeg这个项目来实现。【ffmpeg推mpegts】ffmpeg推流支持http和udp两种协议,目前还不支原创 2017-12-18 15:30:01 · 4195 阅读 · 2 评论 -
【Netty4 简单项目实践】三、压缩消息体:使用google的protocol buff
老古董的C++程序员最讨厌的地方就是爱扣什么鸟传输带宽。讲道理,带宽上的那点开销和编解码的开销+代码维护(Json)成本比起来根本不值一提。咱们继续。ChannelHandlerContext原理本来是不想讲原理的,但是有几个认知需要明确一下。在每个处理类(比如编解码)的输出,如果不满足下一个类的输入类型要求,下一个类是根本不会响应。比如之前看到的:public cla原创 2016-04-25 22:25:19 · 3726 阅读 · 0 评论 -
【Netty4 简单项目实践】十、Http协议下使用protocol buff
介绍了在Netty中如何用Http收发Protocol buff序列化的对象。原创 2016-12-08 11:57:04 · 1531 阅读 · 0 评论 -
【Netty4 简单项目实践】九、示例项目
这个示例项目包含了【Netty4 简单项目实践】系列的代码。还包括之后写的一部分内容,如聊天敏感词过滤原创 2016-08-24 11:09:10 · 1426 阅读 · 0 评论 -
【Netty4 简单项目实践】六、断掉未鉴权的TCP长连接--ChannelHandelContext中的定时器用法
本文是Netty实践中的一个小应用:用ChannelHandlerContext定时器来实现阻断无效TCP长连接的方法。原创 2016-05-07 15:39:40 · 7785 阅读 · 0 评论 -
【Netty4 简单项目实践】四、添加Log工具-SL4J
添加Log功能原创 2016-04-29 13:34:00 · 8104 阅读 · 3 评论 -
【Netty4 简单项目实践】八、转发服务的实现方案
Netty的共享线程模式原创 2016-05-28 17:32:23 · 7842 阅读 · 12 评论 -
【Netty4 简单项目实践】五、Netty4接收HTTP文件上传
又要开一个接收文件上传的服务,找了官方的样例代码,把不需要的东西删了一圈,很容易就实现了。Bootstrap没什么变化,所以只写上initChannel需要加载的处理器.childHandler(new ChannelInitializer() { @Override protected void initCh原创 2016-05-01 23:02:30 · 14265 阅读 · 3 评论 -
【Netty4 简单项目实践】二、解决TCP连包问题:分隔符解码器
TCP他会分包发很讨厌,开始的时候用分隔符来实现String消息的提取。这种解决方案适合于用Json进行消息交互的TCP长连接。下面的代码,在第一篇的代码上进行修改即可。分隔符处理器解决的思路是在channel链上加载分隔符处理器DelimiterBasedFrameDecoder,代码如下String delimiter = "Doge";ByteBuf[原创 2016-04-25 18:44:03 · 1645 阅读 · 0 评论 -
【Netty4 简单项目实践】七、上线前准备--内存泄漏监控、系统监控
一、内存泄漏Netty4的内存泄漏监控默认是没有的,需要手动设置。它的内存泄漏只是针对Bytebuf,这也暗示着使用Bytebuf能提高系统性能降低GC的影响。配置很简单,就是设置运行变量 io.netty.leakDetection.level String str = Property.getProperty("io.netty.leakD原创 2016-05-24 14:04:21 · 4728 阅读 · 2 评论 -
【Netty4 简单项目实践】一、长连接服务通用框架原型
第一个版本实现面向字符串的TCP长连接服务看点:Liunx优化、TCP连接设置服务端通用框架在Netty4中,所有的服务端使用相同的框架结构。生成一个ServerBootstrap对象在ServerBootstrap对象的group中添加“接收消息循环队列”和“发送消息循环队列”两个对象在ServerBootstrap对象上设置连接的属性(比如TCP连接属性:收发包原创 2016-04-25 18:20:36 · 5968 阅读 · 7 评论 -
【Netty4 简单项目实践】十四、用SpringBoot加载Netty
【前言】在没用SpringBoot加载Netty的时候,我觉得单独靠Thread启动一个Netty也挺好。后来因为工作习惯的改变,越来越多的依赖AOP、SOA,觉得SpringBoot管理起Netty后,其实也还好,因为很少在Netty上操作ORM,唯一有点喜欢的就是基于AOP的Log。【入口】之前我写好一个Netty Server后,会让他implements Runnable/Callable...原创 2018-02-08 10:13:41 · 7350 阅读 · 0 评论