Document directory
It has been six months since ESPlus 2.0 was released. Over the past six months, dozens of companies have officially used ESFramework 4.0 in their projects or products, based on the actual usage, we have provided a lot of useful suggestions. Based on these suggestions and the long-term development plan of ESFramework, ESPlus 3.0 is launched today. In the new version of ESFramework/ESPlus, We have reconstructed some interfaces, which makes it easier to use the framework. The new version also adds more practical new features, developers can more easily control the powerful functions provided by ESFramework. In addition, ESPlus 3.0 is also a prerequisite for the release of ESPlatform's cluster platform 1.0.
Next, we will describe the difference between the latest version and the previous version from three aspects: Bug fixing, kernel optimization, and feature change.
I. Bug fix list
1. the TCP-based P2P channel occasionally closes the bug automatically.
2. The client may automatically reconnect to a bug after being disconnected.
3. Client P2P engines may write a large number of log bugs under certain circumstances.
4. If a user who has not successfully logged on disconnects, UserManager will also trigger the SomeOneDisconnected event bug.
Ii. kernel optimization list
1. UDP-Based P2P optimization: enhances the performance of the UDP engine, improves algorithms, reduces the retransmission rate, and increases the sending speed.
2. TCP client engine optimization: reduces the startup time required for initialization.
3. Feature Change List
1. Friends and Groups
Turn friends and group items from the required wings of the Rapid engine into optional functions.
(1) added the ESPlus. Application. Friends and ESPlus. Application. Group namespaces to accommodate Friends and groups.
(2) IFriendsManager and IGroupManager are converted from the Initialize method parameter of the server IRapidServerEngine to its injection attribute.
(3) IRapidServerEngine adds the read-only attribute IFriendsController and IGroupController to control the behavior of friends and groups.
(4) IRapidPassiveEngine adds the read-only attributes FriendsOutter and GroupOutter.
(5) developers who do not need friends or group features do not need to understand these two options. You do not need to set the FriendsManager and GroupManager attributes of IRapidServerEngine.
2. Client ICustomizeOutter
(1) added the asynchronous message delivery (Post) function;
(2) added the function of replying to asynchronous calls;
(4) added the function of sending big data blocks (Blob. For details, see ESFramework usage tips-big data block information.
(5) When the channel is busy, you can choose whether to discard the data to be sent.
(6) When using ICustomizeOutter for Synchronous calling, if the connection is disconnected, an exception is thrown directly instead of waiting for timeout.
(7) The BroadcastInGroup method is transferred to the Broadcast method of IGroupOutter.
3. ICustomzieHandler
In the new version, the server and client share the same ICustomizeHandler interface, that is, ESPlus. Application. CustomizeInfo. ICustomizeHandler. The latest interface definition is more concise, as shown below:
Public interface ICustomizeHandler {// <summary> // process received information (including big data block information ). /// </Summary> /// <param name = "sourceUserID"> ID of the user who sends the message. If it is null, the information is from the server. </Param> /// <param name = "informationType"> Custom information type </param> /// <param name = "info"> Information </param> void handleInformation (string sourceUserID, int informationType, byte [] info); // <summary> // process the received request and return the response information. /// </Summary> /// <param name = "sourceUserID"> ID of the user who sends the request information. If it is null, the information is from the server. </Param> /// <param name = "informationType"> custom request information type </param> /// <param name = "info"> Request Information </ param> // <returns> Response Information </returns> byte [] HandleQuery (string sourceUserID, int informationType, byte [] info );}
As explained in the comment, if the value of the sourceUserID parameter of the method is null, it indicates that the custom information comes from the server [when used on the client ]. Of course, if it is used on the server side, the first parameter sourceUserID of the method will never be null.
As for broadcast information, it has been migrated to the ESPlus. Application. Group namespace. When the broadcast information received by the client is triggered by IGroupOutter, The BroadcastReceived event is notified.
4. Client IBasicOutter
(1) If the Logon method does not return a response upon timeout, the Logon failure is returned because a TimeoutException exception is thrown.
(2) added the PingByP2PChannel function.
(3) Transfer the event notification to the corresponding IFriendsOutter and IGroupOutter interfaces.
5. The Rapid engine is more cohesive
(1) Client IRapidPassiveEngine no longer exposes internal core engines.
(2) to make up for the inability to access some of the engine information provided by (1), IRapidPassiveEngine adds attributes and events: ChannelIsBusy attributes, ConnectionInterrupted events, and ConnectionRebuildStart events.
(3) The server IRapidServerEngine adds the FriendsController and GroupController attributes, and transfers the original friendpolicyenabled attributes and grouppolicyenabled attributes to IFriendsController and IGroupController.
6. Independently deployed P2P servers
(1) The P2P server can be deployed independently or integrated into the Rapid server engine.
(2) IRapidServerEngine adds the UseAsP2PServer attribute to control whether to integrate P2P servers.
(3) IRapidPassiveEngine adds P2PServerAddress to set the address of an independent P2P server.
For details, see ESFramework usage tips-deploy P2P servers.
Iv. Version description
The released dll versions are as follows: ESFramework 4.0.9.0 and ESPlus 3.0.0.0, and all released Assembly versions adopt strong signatures.
The latest ESFramework/ESPlus SDK, help documentation, demo, open source code have been updated and put to our official website for everyone to download the trial (http://www.oraycn.com/ESFramework_download.aspx ).
All the articles in this blog's ESFramework development manual have been updated. For more detailed instructions on the use of the new version, see the relevant articles in the development manual.
If you have never heard of ESFramework, you can start with ESFramework development manual (00)-Overview. Thank you.
Read more ESFramework development manual articles.
------------------------------------------------------------------------------------------------------------------------------- ---------------- Download the free version of ESFramework and demo source code
For any questions about ESFramework, please contact us:
Tel: 027-87638960
Q: 372841921
Mail: esframework@oraycn.com