ESPlus 3.0 正式發布!ESFramework 提示 -- 大資料區塊資訊

來源:互聯網
上載者:User
文章目錄
  • 3.ICustomzieHandler

      距離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)的功能。詳情請參見 ESFramework 提示 -- 大資料區塊資訊。

(5)支援在通道繁忙時,可以選擇是否丟棄要發送的資料。

(6)通過ICustomizeOutter進行同步調用時,如果串連斷開,不再需要等到逾時,而是直接拋出異常。

(7)BroadcastInGroup方法轉移成為IGroupOutter的Broadcast方法。

 

3.ICustomzieHandler

      請特別注意,在新版本中,服務端和用戶端共用同一個ICustomizeHandler介面,即ESPlus.Application.CustomizeInfo.ICustomizeHandler。最新的介面定義更加簡潔,如下所示:

    public interface ICustomizeHandler    {        /// <summary>        /// 處理接收到的資訊(包括大資料區塊資訊)。        /// </summary>        /// <param name="sourceUserID">發出資訊的使用者ID。如果為null,表示資訊來自服務端。</param>        /// <param name="informationType">自訂資訊類型</param>        /// <param name="info">資訊</param>        void HandleInformation(string sourceUserID, int informationType, byte[] info);               /// <summary>        /// 處理接收到的請求並返回應答資訊。        /// </summary>        /// <param name="sourceUserID">發送請求資訊的使用者ID。如果為null,表示資訊來自服務端。</param>             /// <param name="informationType">自訂請求資訊的類型</param>          /// <param name="info">請求資訊</param>        /// <returns>應答資訊</returns>        byte[] HandleQuery(string sourceUserID, int informationType, byte[] info);         }

      就像注釋所解釋的,如果方法的參數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開發手冊系列文章。

-----------------------------------------------------------------------------------------------------------------------------------------------  下載免費版本的ESFramework 以及 demo源碼  

關於ESFramework的任何問題,歡迎聯絡我們:

電話:027-87638960

Q Q:372841921

郵件:esframework@oraycn.com 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.