nio框架yanf4j发布0.50-alpha
2023-03-14 10:26:12 时间
俺的山寨nio框架yanf4j发布0.50-alpha版本,下载地址在这里,更新了wiki。本测试版本主要修改如下:
1、Controller接口引入了两个新方法:
a)接受InetSocketAddress类型参数的系列open方法,用以在多宿主机上绑定到不同网络接口
public void open(InetSocketAddress inetSocketAddress, boolean reuseAddr,
Handler handler, CodecFactory codecFactory) throws IOException;
public void open(InetSocketAddress inetSocketAddress, boolean reuseAddr,
Handler handler) throws IOException;
public void open(InetSocketAddress inetSocketAddress, Handler handler)
throws IOException;
public void open(InetSocketAddress inetSocketAddress, Handler handler,
CodecFactory codecFactory) throws IOException;
b)wakeup()方法,用以唤醒阻塞在select调用上的reactor,此方法的重载版本可以传入session和 EventType指定触发
public void wakeup();
public void wakeup(Session session, EventType eventType);
通常来说,你并不需要用到此方法。
2、TCPController添加了backlog的getter和setter方法,用以设置backlog队列大小
public int getBacklog();
public void setBacklog(int backlog);
1、Controller接口引入了两个新方法:
a)接受InetSocketAddress类型参数的系列open方法,用以在多宿主机上绑定到不同网络接口
public void open(InetSocketAddress inetSocketAddress, boolean reuseAddr,
Handler handler, CodecFactory codecFactory) throws IOException;
public void open(InetSocketAddress inetSocketAddress, boolean reuseAddr,
Handler handler) throws IOException;
public void open(InetSocketAddress inetSocketAddress, Handler handler)
throws IOException;
public void open(InetSocketAddress inetSocketAddress, Handler handler,
CodecFactory codecFactory) throws IOException;
b)wakeup()方法,用以唤醒阻塞在select调用上的reactor,此方法的重载版本可以传入session和 EventType指定触发
public void wakeup();
public void wakeup(Session session, EventType eventType);
通常来说,你并不需要用到此方法。
2、TCPController添加了backlog的getter和setter方法,用以设置backlog队列大小
public int getBacklog();
public void setBacklog(int backlog);
3、reuseAddress默认修改为false,防止服务器悄无声息地启动出错,除非你明确指定。
4、修复数个bug,如session启动未注册到controller、关闭session在异常情况下Controller没有移除session可能造成内存泄露等问题
5、一些优化手段,依照ACE建议调整事件派发顺序等
6、一些重构,因为早期AbstractController并不庞大,因而将Reactor作为它的内部类实现,现在随着代码的添加,AbstractController变的复杂难懂,因而将Reactor从AbstractController抽离成独立的类,引入新的接口如SessionEventManager、ControllerLifeCycle、ControllerWrapper以及SelectionKeyHandler等。
7、可以在jdk5.0下使用yanf4j了,原来仅支持1.6以上,不过你需要自己编译,二进制包仍然仅提供jdk6.0编译版本。
文章转自庄周梦蝶 ,原文发布时间2009-02-04
相关文章
- Openresty、Lua学习笔记,从入门到精通,持续记录
- adb 官方文档介绍
- 如何取消Chrome浏览器跨域请求限制、跨域名携带Cookie限制、跨域名操作iframe限制?
- composer 国内镜像
- windows 之 bat 实现进程守护
- PHP如何使用Composer来自动加载项目文件?
- 如何快速地将WordPress文章内所有外部图片转换为本地链接?
- 听说DNS根服务器只有13台,科学吗?
- 记录一次访问量瞬间增加,导致请求卡住的问题排查过程
- 基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架common目录解析
- 为什么用公钥加密却不能用公钥解密?
- 记录一次服务器被CC攻击后的处理过程
- 如何使用PHP+WebHook自动同步Gitee、Github仓库内的代码到服务器?
- Golang学习笔记,从入门到精通,持续记录
- 如何使用acme.sh自动获取、更新Let’s Encrypt的SSL证书?
- 记录一次Node升级之后,引发老项目无法启动的问题。ERR_OSSL_EVP_UNSUPPORTED
- 如何通过PHP打包Git版本库中两个版本之间的差异文件?
- 组织架构设计、角色与权限设计的一些思考
- 为什么我抓不到baidu的数据包
- PHP ImageMagick扩展有哪些函数?PHP ImageMagick扩展的使用方法