ESPlus 3.0 正式发布!

距离ESPlus 2.0发布已经有半年的时间了,在这半年多的时间中,有数十家公司在他们的项目或产品中正式使用了ESFramework 4.0,并根据实际的使用状况,给我们反馈了很多有益的建议。基于这些建议和ESFramework的长期发展规划,今天,我们推出了ESPlus 3.0 。在新版本的ESFramework/ESPlus中,我们重构了部分接口,这将使得框架的使用更加容易上手;新版本也加入了更多实用的新特性,开发者能更细腻地控制ESFramework提供的强大功能。另外,ESPlus 3.0也是接下来ESPlatform的群集平台1.0能进行发布的前提条件。

接下来我们将从Bug修复、内核优化、特性变更三个方面描述最新版本与上一版本的区别。

一.Bug修复列表

1.基于TCP的P2P通道偶尔会自动关闭的bug。

2.客户端被挤掉线后,可能还会自动重连的bug。

3.客户端P2P引擎在某种情况下,会写大量日志的bug。

4.未登录成功的用户断开连接时,UserManager也会触发SomeOneDisconnected事件的bug。

二.内核优化列表

1.基于UDP的P2P优化: 增强UDP引擎性能; 改进算法,降低重发率; 增大发送速度。

2.TCP客户端引擎优化:减少初始化所需的启动时间。

三.特性变更列表

1.好友与组

将好友与组二项,由Rapid引擎的必需两翼,转变成可选 功能。

(1)增加ESPlus.Application.Friends和ESPlus.Application.Friends和ESPlus.Application.Friends和ESPlus.Application.Group命名空间,来容纳好友与组的相关功能。

(2)IFriendsManager、IGroupManager由作为服务端IRapidServerEngine的Initialize方法的参数转变成了其注入属性。

(3)IRapidServerEngine增加了只读属性IFriendsController和IGroupController,用于控制好友与组的相关行为。

(4)IRapidPassiveEngine增加了只读属性FriendsOutter和GroupOutter。

(5)那些不需要好友与组特性的开发者,就不再需要去了解这两个选项。也不用设置IRapidServerEngine的FriendsManager和GroupManager属性。

2.客户端ICustomizeOutter

(1)增加异步投递消息(Post)的功能;

(2)增加回复异步调用 的功能;

(4)增加发送大数据块(Blob)的功能。

(5)支持在通道繁忙时,可以选择是否丢弃要发送的数据。

(6)通过ICustomizeOutter进行同步调用时,如果连接断开,不再需要等到超时,而是直接抛出异常。

(7)BroadcastInGroup方法转移成为IGroupOutter的Broadcast方法。

3.ICustomzieHandler

请特别注意,在新版本中,服务端和客户端共用同一个ICustomizeHandler接口,即ESPlus.Application.CustomizeInfo.ICustomizeHandler 。最新的接口定义更加简洁,如下所示:

就像注释所解释的,如果方法的参数sourceUserID的值为null,就表示这个自定义信息是来自服务端的【用于客户端时】。当然,如果是用于服务端,则方法的第一个参数sourceUserID是绝对不会为null的。

至于广播信息,已经迁移到了ESPlus.Application.Group命名空间,客户端接收到的广播信息时由IGroupOutter触发BroadcastReceived事件进行通知。

4.客户端IBasicOutter

(1)Logon方法如果超时没有回复,则由抛出TimeoutException异常改为返回登录失败。

(2)增加PingByP2PChannel的功能。

(3)好友/组友上下线通知事件转移到对应的IFriendsOutter和IGroupOutter接口中。

5.Rapid引擎更加内聚

(1)客户端IRapidPassiveEngine不再暴露内部的核心引擎。

(2)为了弥补由(1)带来的部分引擎信息不能访问的不足,IRapidPassiveEngine增加属性和事件:ChannelIsBusy属性,ConnectionInterrupted事件、ConnectionRebuildStart事件。

(3)服务端IRapidServerEngine增加了FriendsController和GroupController属性,并且将原来的FriendNotifyEnabled属性和GroupNotifyEnabled属性转移到了IFriendsController和IGroupController中。

6.可独立部署的P2P服务器

(1)P2P服务端可以独立部署,也可以集成于Rapid服务端引擎中一起部署。

(2)IRapidServerEngine增加了UseAsP2PServer属性,用于控制是否集成P2P服务器。

(3)IRapidPassiveEngine增加了P2PServerAddress用于设定独立P2P服务器的地址。

详情可参见 ESFramework 使用技巧 -- 部署P2P服务器

四.版本说明

本次发布的dll的版本如下:ESFramework 4.0.9.0, ESPlus 3.0.0.0 。

最新版本ESFramework/ESPlus的SDK、帮助文档、demo、已开放的源码等 都已经更新并放到我们的官网供大家下载试用(http://www.oraycn.com/ESFramework_download.aspx )。

本博客的《ESFramework开发手册 》系列文章也已经全部更新完毕。新版本更详细的使用说明可以参见开发手册相应的文章。

对于从未了解过ESFramework的朋友,可以从 ESFramework 开发手册(00) -- 概述 这篇文章开始。谢谢。

阅读 更多ESFramework开发手册系列文章

-----------------------------------------------------------------------------------------------------------------------------------------------

猜你喜欢

转载自jiagou.iteye.com/blog/1541032